cocos2dx3.2升级Android5的坑
2016-01-14 15:48
621 查看
虽然已经转到服务端,但是对客户端的事情,偶尔还看看。公司的游戏用的是cocos2dx 3.2的版本,
然而在Android 5 上却无法运行。
先是没有触摸事件。
在stackoverflow上看到,原因是没有加载编译生成的so文件。可是看了一下AndroidManifest.xml已经加载了。
于是对比了一下高版本的2dx,发现Application.mk文件上的APP_STL使用的是gnustl_static
另外ndk版本修改为4.9
还得修改build_native.py的select_toolchain_version函数
之后一切好使,过了一段时候后,发现ios正常,而Android却莫名其妙崩溃。
经过不断的排查,发现居然是stl的排序函数引起的,compare函数的值必须返回大于,不能是大于等于。
然而在Android 5 上却无法运行。
先是没有触摸事件。
在stackoverflow上看到,原因是没有加载编译生成的so文件。可是看了一下AndroidManifest.xml已经加载了。
于是对比了一下高版本的2dx,发现Application.mk文件上的APP_STL使用的是gnustl_static
另外ndk版本修改为4.9
还得修改build_native.py的select_toolchain_version函数
def select_toolchain_version(): '''Because ndk-r8e uses gcc4.6 as default. gcc4.6 doesn't support c++11. So we should select gcc4.7 when using ndk-r8e. But gcc4.7 is removed in ndk-r9, so we should determine whether gcc4.7 exist. Conclution: ndk-r8e -> use gcc4.7 ndk-r9 -> use gcc4.8 ''' ndk_root = check_environment_variables() if os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.9")): os.environ['NDK_TOOLCHAIN_VERSION'] = '4.9' print "The Selected NDK toolchain version was 4.9 !" elif os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.8")): os.environ['NDK_TOOLCHAIN_VERSION'] = '4.8' print "The Selected NDK toolchain version was 4.8 !" elif os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.7")): os.environ['NDK_TOOLCHAIN_VERSION'] = '4.7' print "The Selected NDK toolchain version was 4.7 !" else: print "Couldn't find the gcc toolchain." exit(1)
之后一切好使,过了一段时候后,发现ios正常,而Android却莫名其妙崩溃。
经过不断的排查,发现居然是stl的排序函数引起的,compare函数的值必须返回大于,不能是大于等于。
相关文章推荐
- Cocos2d-x 2.x项目创建
- cocos studio: 界面模块化
- cocos2d-x之Android版接sdk的那些坑,第三方so文件打不进apk或者为1kb
- Cocos2d-JS目录说明
- 升级到cocos2d-x 2.0.2代码差异
- cocos2d-x 旅程開始--(实现瓦片地图中的碰撞检測)
- cocos2d-x问题记录:只在回调函数中执行动作会导致终端
- Cocos Studio制作帧动画
- 集成友盟社会化分享
- Cocos2dx打包安卓配置环境
- 关于在cocos2dx中继承Sprite的分析与技巧
- Cocos2dx-Lua开发环境配置步骤
- cocos2dx虚拟摇杆cpp四方向
- cocos2d-x中使用JNI的调用JAVA方法
- cocos2dx的渲染机制
- cocos2dx的内存管理机制
- cocos的init函数
- cocos2d-x 卓上改变工程图标的步骤
- Spine的使用(With Cocos2d-x)
- Quick-Cocos2dx-- 资源热更新2