关于cocos2dx 3.0升级崩溃报错(unable to load native library) 和(Fatal signal 11 (SIGSEGV) at 0x00000000)

         最近一直在Windows平台开发cocos-2dx游戏,期间做了一次引擎升级,升级到了3.0正式版本。Windows平台上表现很正常,没有出现什么问题。

         上周五准备发布一个安卓包,编译很轻松的就过了,没有花费多少时间,但是安装到手机后,发现运行就崩溃了。没办法只好用模拟机调试,再次吐槽Android的模拟器,真的太他妈慢了,不到万不得已我真的不想再去用它,google真的应该好好整一下了。

         好不容易运行起来了,看到崩溃的时候logcat的报错是“unable to load native library XXX”,莫名其妙的报错,看样子好像是程序安装的问题,但是我查看了文件系统,有这个so文件。找了好久都没发现问题所在,最后在一个国外的网站看到了答案,主要是cocos-2dx库的java部分代码改变了,程序创建时候的Activity的继承类变了,从NativeActivity编程了Cocos2dxActivity了。大家不知道如何改就直接把cocos2dx下示例下的Activity拖过来即可。

         改过来之后还是继续崩溃,不过报错信息变了,“Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)”,在网上查了很多,到处都是引用的下面这篇文章,但是这篇文章根本不能解决我的问题。

          cocos2dx fatal signal11(SIGSEGV) at 0x00000000(code=1)的解决实践

        我加了很多打印,都没打印出来,估计如网上所有,可能是JNI的问题,不过有了上面的经验,突然想到是不是jni入口也改变了呢,对比了我的版本的main.cpp文件和示例版本的main.cpp,发现果然是入口文件版本的修改导致,把示例的main.cpp里面的代码复制过来,再编译,顺利进入游戏!
        发现网上搜索这些报错的很多,所以记录下来,为其他可能出现这些问题的同学提供一些帮助吧。

        转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

你可能感兴趣的:(TO,jni,load,3.0,Signal,fatal,Cocos-2dx,11,Unable,Andiord,nativ,SIGS)