cocos2dx Android:.txt地图文件未​​复制到/data/data/com.cocos2dx.application/文件夹中

时间:2012-10-19 10:55:21

标签: android cocos2d-x

问题是下一个: 我在iOs / win32 cocos2dx项目的Resources文件夹中有一些.txt文件(一切都很完美)。我正试图将这个移植到Android上,一切都很顺利,除了一件事,我在项目构建时找不到我的.txt地图文件。显示资产文件夹中的所有图片我使用此类代码

std::stringstream ss;
ss << "tutorialMap" << i << ".txt";
std::string fileName = ss.str();
const char *fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(fileName.c_str());

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) 
  std::stringstream strStream;
  strStream<<"/data/data/com.cocos2dx.application/"<<fileName; 
  std::string fName = strStream.str();
  fullPath = fName.c_str();
  CCLog("File name is:%s",fullPath);
#endif

std::ifstream t(fullPath);
std::string str((std::istreambuf_iterator<char>(t)),std::istreambuf_iterator<char>());
CCLog("file content: %s",str.c_str());

当iOS / win32构建工作时,最后一行显示我文件内容,但在android中它是空的。看起来文件不存在。 请帮忙!!!!

P.S。也是一周前(当项目没有准备好的时候)我试图做同样的事情,一切都很好。你能给我一些链接或别的东西,我可以找到它的原因。

1 个答案:

答案 0 :(得分:0)

Android保留文件夹assets ziped in .apk file,因此你必须以其他方式去那里:

unsigned char * bufferSize = 0;
unsigned char * charbuffer = CCFileUtils::sharedFileUtils()->getFileData(genrefile, "file", &bufferSize );
  

assets /这是空的。您可以使用它来存储原始资产文件。档   你在这里保存的是按原样编译成.apk文件,然后是   原始文件名被保留。您可以在中导航此目录   与使用URI和读取文件的典型文件系统相同的方式   使用AssetManager的字节流。例如,这是一个   纹理和游戏数据的良好位置。

查看documentation

关于assets