我在处理APK扩展时遇到问题。在Java方面,我可以设置我应该设置的所有内容,但似乎我无法在c ++端正确修改代码。
在CCFileUtilsAndroid :: getFileData函数内部:
if (fullPath[0] != '/')
{
CCLOG("GETTING FILE RELATIVE DATA: %s", fullPath.c_str());
pData = CCFileUtils::sharedFileUtils()->getFileDataFromZip("/storage/sdcard0/Android/obb/com.example.package/main.1.com.example_package.obb", fullPath.c_str(), pSize);
}
但是pData var总是为null(如果我是对的,这意味着它无法加载)。我想念的是什么人?
非常感谢提前
(ps:包在那里,我正在使用正确的路径)
答案 0 :(得分:10)
所以,我终于设法解决了我的问题,这比我想象的容易。 我没有使用c ++源代码修改,而是在Cocos2dxHelper java类中找到了一个nativeSetApkPath函数。在调查了它的使用后,结果发现Cocos2dx将apk包作为zip文件处理。因为我的obb毕竟只是一个重命名的zip文件,所以我可以毫无问题地使用它。除声音外,我的所有资产都装得很好。这需要另一个快速解决方案。
大部分功劳都归功于论坛帖子(http://www.cocos2d-x.org/boards/6/topics/11243)和Irwin Billing,因为这是我可以用来修改Cocos2dxMusic.java和Cocos2dxSound.java类的基础。
另外,我必须确保声音资产没有压缩在zip文件中(根据Google提供的文档)。
为此,我在Mac上使用了以下命令:
zip -rn .ogg:.mp3:.wav assets.zip assets/
我要提到的最后一件事是文件夹结构。我复制并压缩了资产文件夹,所以我的zip文件中有一个文件夹。哪个好,因为apk工作方式相同,我不得不做更多修改。
最后我修改了源文件,不要忘记通过它,并更改一些值 Cocos2dxHelper.java: http://pastebin.com/RqeYkTkP
Cocos2dxMusic.java: http://pastebin.com/RXjwmEyb
Cocos2dxSound.java: http://pastebin.com/1GfDB6jb
答案 1 :(得分:1)
请注意,我在ttf
中保留assets/
个字体文件,因为Cocos2dxTypefaces
使用原生AssetManager
从apk
加载{{1}}文件码。
答案 2 :(得分:1)
版本2.x
只是我的意见。
3.x
无效Cocos2dxHelper.java
。