看一下以下流程,在“---1----”打印后,程序就崩溃了,提示
“Invalid indirect reference 0x5c6fdbe8 in decodeIndirectRef
E/dalvikvm( 1148): VM aborting”
错误信息。不知是何原因 (这个流程在海思的平台是没问题,但是在amlogic上跑就崩溃了)JNIEXPORT void JNICALL Java_HelloWorld_jni_HelloWorldNative_init
(JNIEnv *env, jobject cls)
{ LOGD(" -----------init start !!! "); g_native_jobj = (*env)->NewGlobalRef(env, cls); (*env)->GetJavaVM(env,&g_cloud_jvm);
if(g_cloud_jvm == NULL){
LOGW("GetJavaVM error!\n");
return;
}
LOGD("----0----"); jclass clsNative = (*env)->FindClass(env,"HelloWorld/jni/HelloWorldNative");
if(clsNative == NULL){
LOGD("FindClass clsNative error!\n");
return;
}
g_native_cls = (*env)->NewGlobalRef(env, clsNative);
jmethodID graphics_methodID = (*env)->GetMethodID(env,g_native_cls, "showGraphics", "([B)V");
if(graphics_methodID == NULL){
LOGD("graphics_methodID error!\n");
return;
} LOGD("-----1----");
g_graphics_methodID = (*env)->NewGlobalRef(env, graphics_methodID);
LOGD("----2-----");
“Invalid indirect reference 0x5c6fdbe8 in decodeIndirectRef
E/dalvikvm( 1148): VM aborting”
错误信息。不知是何原因 (这个流程在海思的平台是没问题,但是在amlogic上跑就崩溃了)JNIEXPORT void JNICALL Java_HelloWorld_jni_HelloWorldNative_init
(JNIEnv *env, jobject cls)
{ LOGD(" -----------init start !!! "); g_native_jobj = (*env)->NewGlobalRef(env, cls); (*env)->GetJavaVM(env,&g_cloud_jvm);
if(g_cloud_jvm == NULL){
LOGW("GetJavaVM error!\n");
return;
}
LOGD("----0----"); jclass clsNative = (*env)->FindClass(env,"HelloWorld/jni/HelloWorldNative");
if(clsNative == NULL){
LOGD("FindClass clsNative error!\n");
return;
}
g_native_cls = (*env)->NewGlobalRef(env, clsNative);
jmethodID graphics_methodID = (*env)->GetMethodID(env,g_native_cls, "showGraphics", "([B)V");
if(graphics_methodID == NULL){
LOGD("graphics_methodID error!\n");
return;
} LOGD("-----1----");
g_graphics_methodID = (*env)->NewGlobalRef(env, graphics_methodID);
LOGD("----2-----");
解决方案 »
- android EOFException HttpURLConnection getResponseCode
- 绝对定位下ImageView重绘Bitmap的问题
- android一个xml的FrameLayout中有两个相对布局如何在程序中设置一个显示一个隐藏,而且通过事件可以使其显示状态互换
- NFC Android 开发问题
- Gallery中如何通过Button来实现缩放当前图片(带动画)
- android 真机调试
- 编译android源码时,如何指定输出路径?
- 类似生活日历主界面 可滑动展开布局
- 求助!listview的item获取焦点的问题。
- mvp
- 求Android启动低电量提醒程序
- 切换Tab选项卡时重新启动activity的问题
-----------init start !!!
----0----
----1----
Invalid indirect reference 0x5c6fdbe8 in decodeIndirectRef
E/dalvikvm( 1148): VM abortingamlogic平台上只要是对jmethodID类型变量的NewGlobalRef()都会挂掉,对一个jclass类型 NewGlobalRef()是没有问题;但是在对一个jclass变量NewGlobalRef(),在引用前和引用后的地址是不一样的,而在海思的平台上引用前后的地址是一样的,在这两个平台上都是用NDK的标准工具链编译的
answered Jun 14 at 10:20EJP
48.3k62556
Silly me. You may be right. I'll try it when I get home and let you know if it works. – marceln Jun 14 at 11:17
Great! It works. Thanks! – marceln Jun 14 at 19:21
feedback