cocos2dx3.0以下版本打的apk包在android5.0机上运行崩溃

最近发现公司项目在android5.0上跑时会出现崩溃情况,网络上也有相关资料,具体原因可参考此贴 http://blog.k-res.net/archives/1525.html
总体来说解决方案有两种:
1.升级cocos2dx版本(高版本已经修复了该问题)
2.参考此贴 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=564427 下面就说说第2种解决方案,这里以cocos2dx 2.2.6 lua版本为例子: 首先下个ndk r10d,这个不要问我怎么下; 然后查找cocos2dx框架文件修改,如下所示: 修改CCHTTPRequestAndroid.cpp如下: static jclass getClassID_(const char *className,jnienv *env) { ....... if (NULL == s_classHttp) { ret = pEnv->FindClass(className); // s_classHttp = ret; //---->这是修改前的,去掉,替换成下面这句 s_classHttp = (jclass)pEnv->NewGlobalRef(ret); //----->这是修改后的 } else { ret = (jclass)pEnv->NewLocalRef(s_classHttp); } ...... } 修改ccluaJavaBridge.cpp如下 inline map<string,string> jHashMap2StdMap(jnienv* env,jobject jhashmap) { ...... if (env == NULL) { break; } // static jclass mapClass = env->FindClass("java/util/HashMap"); //--->修改前 //修改后 jclass tmp = env->FindClass("java/util/HashMap"); static jclass mapClass = (jclass)env->NewGlobalRef(tmp); ...... if (keyset == NULL) { break; } // static jclass setClass =env->FindClass("java/util/Set"); //---->修改前 //修改后 jclass tmp2 = env->FindClass("java/util/Set"); static jclass setClass = (jclass)env->NewGlobalRef(tmp2); ...... } inline vector<string> jVector2stdVector(jnienv* env,jobject jVector) { ...... if (env == NULL) { break; } // static jclass vectorClass = env->FindClass("java/util/Vector");//--->修改前 //修改后 jclass tmp = env->FindClass("java/util/Vector"); static jclass vectorClass = (jclass)env->NewGlobalRef(tmp); ...... } inline vector<string> jArray2stdVector(jnienv* env,jobject jArray) { ...... if (env == NULL) { break; } // static jclass arrayClass = env->FindClass("java/util/ArrayList");//--->修改前 //修改后 jclass tmp = env->FindClass("java/util/ArrayList"); static jclass arrayClass = (jclass)env->NewGlobalRef(tmp); ...... } 上面工作完成后进行编译,重新打包。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...