资产读写错误导致cocos2d-x win32项目移植到Android?

时间:2014-04-11 08:41:04

标签: android cocos2d-x

现在,在移植到Android项目时,我将所有资源都放到assets文件夹中。但是,我遇到了很多问题。我解决了很多问题,比如从资产中读取xml并使用tinyxml进行解析。但是,我仍然有很多问题,比如我无法写入资产中的xml文件。我无法在资产link的子文件夹下创建带有png文件的CCSprite。如果我将所有文件放在资产之下,或者是否有解决方案向我展示将我的所有资源放在我的Android项目中,我感到很困惑。我可以写资产下的文件吗?

我已添加Android项目的权限。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

我是否错过了一些许可?

1 个答案:

答案 0 :(得分:0)

assets文件夹是只读的。您必须使用CCFileUtils::sharedFileUtils()->getWritablePath()来获取可写路径并将文件名附加到其中。然后,您可以使用CCDictionary来编写简单的键值类型数据。这是一个示例代码。

CCDictionary *dict = CCDictionary::create();
CCString *value= CCString::create("value");
root->setObject(value, "key");

std::string writablePath = CCFileUtils::sharedFileUtils()->getWritablePath();
std::string fullPath = writablePath + "myfile.plist";
if(dict->writeToFile(fullPath.c_str())) {
     CCLog("file saved at %s", fullPath.c_str());
}
delete dict;
dict = NULL;