用cocos2dx(v3.6)读写文件到android错误

时间:2015-11-28 14:24:54

标签: android c++ cocos2d-x cocos2d-x-3.0

我正在尝试将游戏阶段状态存储到带有Cocos2d-x(v3.6)的文件中。但它适用于iOS但不适用于Android。这是我正在使用的代码。谁能告诉我我在做什么?

我从FileUtils获取文件路径,然后以“二进制”的形式写入和读取“StageStat”对象。简单。

std::string path = FileUtils::getInstance()->getWritablePath();
file = path + "stagestatus.txt";
// write 
FILE *fp = fopen(path.c_str(), "wb");
for (int i = 0; i < size; ++i) {
        fwrite(&stages.at(i), sizeof(StageStat), 1, fp);
}
fclose(fp);
// read
FILE *fp = fopen(path.c_str(), "rb");
for(int i = 0; i < count; i++) {
        fread(&ss, sizeof(StageStat), 1, fp);
        stages.push_back(ss);
}
fclose(fp)
return stages;

我还尝试path = "/storage/emulated/0/Android/data/com.mygame.game/stat.txt"作为硬编码路径

2 个答案:

答案 0 :(得分:1)

我不知道原因,但FileUtils::getInstance()->getWritablePath() + "fileName.txt";在Android中无效,仅在iOS中有效。我使用了硬编码路径

string path= "/sdcard/Android/data/com.myCompany.myGame/fileName.txt";

尝试一下,它应该有用。

答案 1 :(得分:1)

尝试添加READ_EXTERNAL_STORAGE权限。