3

我只是在学习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 无效。欢迎大家提出意见。

4

1 回答 1

3

在调用不采用任何参数的方法时删除您传递的参数 (NULL) ("()V")。

于 2013-06-26T19:00:48.080 回答