2013-06-26 66 views
3

我剛學Android和JNI。在Java中,從一個按鈕中點擊一個JNI被調用。在被調用的JNI中,我調用了Java。 離開了錯誤處理,並試圖調用靜態無效的方法,沒有PARMS:在Android上,可Java調用JNI,然後JNI回調到Java?

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表明:在d​​ecodeIndirectRef無效的間接引用0XXXX。歡迎大家提出意見。

回答

3

卸下參數(NULL)調用該取無(「()V」)的方法時要傳遞。