如题:
********** Crash dump: **********
Build fingerprint: ‘google/razor/flo:5.0.2/LRX22G/1649326:user/release-keys’
pid: 24442, tid: 24470, name: GLThread 1367 >>> com.jaeger.sanguo.mi <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 0003a46c /system/lib/libc.so (tgkill+12)
Stack frame #01 pc 00016af5 /system/lib/libc.so (pthread_kill+52)
Stack frame #02 pc 00017707 /system/lib/libc.so (raise+10)
Stack frame #03 pc 00013f75 /system/lib/libc.so (__libc_android_abort+36)
Stack frame #04 pc 00012a3c /system/lib/libc.so (abort+4)
Stack frame #05 pc 00226033 /system/lib/libart.so (art::Runtime::Abort()+170)
Stack frame #06 pc 000a72e9 /system/lib/libart.so (art::LogMessage::~LogMessage()+1360)
Stack frame #07 pc 000b1401 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1112)
Stack frame #08 pc 000b1945 /system/lib/libart.so (art::JniAbortF(char const*, char const*, …)+68)
Stack frame #09 pc 000b2781 /system/lib/libart.so (_ZN3art11ScopedCheck8CheckSigEP10_jmethodIDPKcb.constprop.131+284)
Stack frame #10 pc 000b9e01 /system/lib/libart.so (art::CheckJNI::CallStaticObjectMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+72)
Stack frame #11 pc 001f9fc8 /data/app/com.jaeger.sanguo.mi-2/lib/arm/libcocos2dlua.so (_JNIEnv::CallStaticObjectMethod(_jclass*, _jmethodID*, …)+60): Routine CallStaticObjectMethod in (null):0
Stack frame #12 pc 001fadfc /data/app/com.jaeger.sanguo.mi-2/lib/arm/libcocos2dlua.so (AnnouncementManager::showAnnouncementView(cocos2d::CCString*, cocos2d::CCRect)+392): Routine showAnnouncementView in jni/…/…/Classes/announcement/AnnouncementManager.cpp:78
Stack frame #13 pc 00301094 /data/app/com.jaeger.sanguo.mi-2/lib/arm/libcocos2dlua.so: Routine tolua_JZJCocos2d_AnnouncementManager_showAnnouncementView00 in jni/…/…/Classes/lua_support/JZJLuaCocos2d.cpp:7300
Stack frame #14 pc 00449450 /data/app/com.jaeger.sanguo.mi-2/lib/arm/libcocos2dlua.so: Unable to locate routine information for address 449450 in module /Users/chenguangwen/svn/cocos2d-x-2.2.2/projects/SanGuoGame/proj_mi.android/obj/local/armeabi/libcocos2dlua.so
Stack frame #15 pc 00456654 /data/app/com.jaeger.sanguo.mi-2/lib/arm/libcocos2dlua.so (lua_pcall+68): Unable to locate routine information for address 456654 in module /Users/chenguangwen/svn/cocos2d-x-2.2.2/projects/SanGuoGame/proj_mi.android/obj/local/armeabi/libcocos2dlua.so
通过cocos2dx 调用的jni 会报错
bool isHave = JniHelper::getStaticMethodInfo(t,PACKAGENAME,“isNetworkConnected”,"()Z");
if (isHave)
{
isHave = t.env->CallbooleanMethod(t.classID, t.methodID);
t.env->DeleteLocalRef(t.classID);
CCLOG(“isNetwork Method is Success”);
}
试下看看,换成你的函数的返回类型。
升级你的cocos2dx的版本
原本正常的程序装到5.0手机上就直接崩了,用的3.2版本。暂时还没时间研究,听说整个机制都改了。
升级引擎比较麻烦,不知道3.2的还会不会更新
不行就尝试把jnihelper.cpp里的代码,全从网络上copy一份
今天我也遇到一个这样的问题,看起来类似
但是我这里主要原因,做了开启启动功能,在activity没跑起来之前,就使用到了c++调用java
最后发现是因为JniHelper内 setClassLoaderFrom 方法没有调用,就是Context没设置过,没办法初始loader
只升级JniHelper其实代码变动不大,只添加了一个方法
谢谢回复。
不过我把项目升级到3.6了,ndk也使用了R10版本,目前在android 5.0可正常运行
对的,还好看到你的回复,要不就得麻烦的升级引擎了 
我试了2楼的,发现是可以的,只需要换成对应返回类型的方法调用就可以了。至少我把我项目中的都更新了之后就正常运行了
9楼是正解,ART对JNI的函数返回值类型加强了检测,返回值类型必须一致才行,否则会有问题