0

接下来的问题是:我在 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 中它是空的。看起来文件不存在。请帮忙!!!!

PS 同样是一周前(当项目还没有准备好时)我试图做同样的事情,一切都很好。你能给我一些链接或其他我可以找到它的原因的东西吗?

4

1 回答 1

0

Android 将文件夹资产压缩在 .apk 文件中,因此您必须以其他方式去那里,例如:

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

资产/这是空的。您可以使用它来存储原始资产文件。您在此处保存的文件将按原样编译为 .apk 文件,并保留原始文件名。您可以像使用 URI 的典型文件系统一样导航此目录,并使用 AssetManager 将文件作为字节流读取。例如,这是放置纹理和游戏数据的好位置。

查看文档

关于资产

于 2012-12-13T00:50:05.243 回答