cocos2d-x 3.0的坑有哪些

时间:2023-02-09 00:02:33

问题一:setup.py 之后, ANT目录为什么创建不成功?

ANT目录要指定到bin下面,NDK和SDK则指定要根目录即可


问题二:cocos run -p android 之后,运行应用的时候,报错:so文件无法加载?

在安卓工程目录下面的jni里面有个Application.mk,在这个文件里面添加一行 APP_ABI := armeabi armeabi-v7a x86,注意,这样在编译so文件的时候,会有些久


问题三:运行的时候,为什么程序闪退?

这个问题的原因比较多,需要先确定安卓工程使用的sdk(用eclipse直接可以看到),不要太旧了,现在一般是4.2.2就可以了


问题四:运行在模拟器genymotion上的时候,为什么程序闪退?

据说genymotion只是模拟的是x86芯片的安卓手机,所以在问题二那个里面必须确定加了x86


问题五:用eclipse编译java代码的时候,会发现继承的Cocos2dxActivity.java的onCreate()里面获取metadata为空,为什么?

这个不要紧,它并没有真正去加载so文件,真正加载so文件是在Cocos2dxHelper.java里面的init()方法


问题六:编译so文件的时候报build android project reports error: android/asset_manager.h: No such file or directory,怎么解决?

打开安卓工程目录下的project.properties,将 target=android-8改为target=android-9


问题七:编译so文件的时候,修改了安卓工程目录下的jni里面的Application.mk文件,为什么编译没有起作用?

要重新关闭命令行,然后重新打开,再编译,至少mac下面,windows下,还未验证,需要这样做才行


问题八:把别人编译好安卓版本的工程拷贝到自己的电脑,编译为什么会失败?

这个的原因有2个:

第一:需要删除安卓工程目录下面的obj目录,因为这个里面有编译好的xxx.o文件,这个是别人编译生成了,你自己编译,需要重新生成(如果安卓工程的绝对路径有修改,也需要做这个操作,否则安卓编译不过)

第二:修改安卓工程目录下local.properties里面sdk.dir的值,为你本地安卓sdk的目录


问题九:cocos run的时候,报错:

/cocos2d-x/external/freetype2/prebuilt/android/Android.mk:cocos_freetype2_static: LOCAL_SRC_FILES points to a missing file,(其中freetype2也可能是lua等)是什么原因?

其实这个问题,并不是cocos2dx的坑,而是版本管理工具svn的坑,它的设置里面忽略了.a文件,导致其他人提交的cocos2dx工程里面/cocos2d-x/external 下面的所有.a文件缺失了,所以,你自己重新new一个cocos2dx工程,把/cocos2d-x/external 下面的.a文件拷贝到对应的目录然后编译就ok了