3

私はアンドロイドとJNIを学んでいます。Java 内では、ボタン クリックから JNI が呼び出されます。呼び出された JNI 内で、Java にコールバックします。エラー処理を省略し、パラメータなしで static 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);
}

FindClassとはGetStaticMethodIDエラーを返しません。Java へのコール バックで、Logcat は dalvikvm から次のことを示しています。decodeIndirectRef の無効な間接参照 0xxxx。どんな提案でも大歓迎です。

4

1 に答える 1

3

何も受け取らないメソッド ("()V") を呼び出すときに渡すパラメーター (NULL) を削除します。

于 2013-06-26T19:00:48.080 に答える