2013-06-26 69 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”)的方法时要传递。