我正在尝试将游戏阶段状态存储到带有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"
作为硬编码路径
答案 0 :(得分:1)
我不知道原因,但FileUtils::getInstance()->getWritablePath() + "fileName.txt";
在Android中无效,仅在iOS中有效。我使用了硬编码路径
string path= "/sdcard/Android/data/com.myCompany.myGame/fileName.txt";
尝试一下,它应该有用。
答案 1 :(得分:1)
尝试添加READ_EXTERNAL_STORAGE权限。