在Android上,Java可以调用JNI然后将JNI调用回Java吗?

时间:2013-06-26 18:19:06

标签: java android java-native-interface

我只是在学习android和JNI。在Java中,单击按钮即可调用JNI。在被叫JNI中,我回调Java。 退出错误处理并尝试调用没有参数的静态void方法:

void Java_com_example_ndk2_AndroidNDK1SampleActivity_callme(JNIEnv * env, jobject this, int i)
{
   jclass handlerClass = (*env)->FindClass(env, "com/example/ndk2/AndroidNDK1SampleActivity");
   jmethodID mid = (*env)->GetStaticMethodID(env, handlerClass, "JavaCallback","()V");
   (*env)->CallStaticVoidMethod(env, mid, NULL);
}

FindClassGetStaticMethodID不会返回错误。在回调Java时,Logcat从dalvikvm指示:decodeIndirectRef中的间接引用0xxxx无效。任何建议都会受到欢迎。

1 个答案:

答案 0 :(得分:3)

在调用不带(“()V”)的方法时,删除传递的参数(NULL)。