【问题标题】:On Android, can Java call JNI and then the JNI calls back into Java?在 Android 上,Java 可以调用 JNI,然后 JNI 调用回 Java 吗?
【发布时间】:2013-06-26 18:19:06
【问题描述】:

我只是在学习 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 无效。欢迎提出任何建议。

【问题讨论】:

    标签: java android java-native-interface


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多