eclipse在Ubuntu下实在不稳定,三天两头崩溃一次。。受不了了。刚刚切到XCode环境进行编译,问题遇到不少。比如编译一直找不到文件就是一个问题,折腾了不少时间。。
1. 关于XCode资源文件找不到
如果在Resource中直接添加一个文件夹文件,它的图标是黄色的,这样是不可以正常读取到文件夹中的资源文件的。此时如果去查看XCode打出来的XAP包,会发现资源文件的结构是平坦的,都被展开了,原本的目录结构不存在了。解决办法是在 把资源以目录的形式加入xcode时, 选择”Create folder references for any added folders “, 而不是默认的” Create groups for any added folders “, 加入后,xcode左侧树状结构内显示的图标是蓝色而非黄色.
2. 关于CocosBuilder无故删除文件
这个问题我遇到过两次,相当严重,这次直接导致我要重做大量工作!此Bug非常让人恼怒!github上也有人报告了这个bug,但是不知为何这么严重的问题却至今还没有被处理。
如果你是从CocosBuilder3.0 alpha5之前的版本升级到alpha5的,用的工程文件是老的,貌似就可能出现。如果你打算发布ios或者html5的ccbi,会将目录完全清空,包括你的原始ccb布局文件和所有纹理、字体等等!上面链接中有人回复提到的解决方法对我也无用。但是我发现在alpha5中直接新建的工程,没有此问题,所有目前只好新建工程一个个页面和资源从老的工程中导过来。蛋疼。
3. NDK_MODULE_PATH问题
当不是在Cocos2d-x框架目录下构建Android游戏时,可能会出现这个bug,网上有很多解决方案,但是基本上都不顶用。错误信息参考如下:
1 2 3 4 | Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android' in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ? Android NDK: The following directories were searched: Android NDK: jni/Android.mk:19: *** Android NDK: Aborting. . Stop. |
网上的其他解决方案包括设置Eclipse环境变量,设置系统环境变量,直接硬编码路径,直接拷贝框架源代码到游戏相关目录等等。经过试验后两种可用。但是最后一种方法显然非常笨拙,下下策。当然实际一定可以用的还有一个办法是直接将工程建到Cocos2d-x目录下。但是如果我们要将来要给XCode也用同一份代码来打包iOS版本,这个方法就不适合了。
直接将路径写入到Android.mk可以解决。方法如下:
1 2 3 4 5 | $(call import-add-path, /Users/kimia/Software/cocos2d-x-2.1.4) \ $(call import-add-path, /Users/kimia/Software/cocos2d-x-2.1.4/cocos2dx/platform/third_party/android/prebuilt) \ $(call import-module,cocos2dx) \ $(call import-module,CocosDenshion/android) \ $(call import-module,extensions) |
其中前两行就是我们需要加入的路径。个人的机器各异。更好的办法当然是将这两个路径的环境变量抽取出来。
另外,由于这时候的游戏项目路径不是在Cocos2d-x目录下,(看看你在XCode中创建工程的时候放哪儿了?)所以build_native.sh文件种的三个变量也要修改下:
1 2 3 4 | # ... use paths relative to current directory COCOS2DX_ROOT="/Users/kimia/Software/cocos2d-x-2.1.4" APP_ROOT="/Users/kimia/Development/Cocos2dGames/TestGame" APP_ANDROID_ROOT="/Users/kimia/Development/Cocos2dGames/TestGame/proj.android" |