java - 在 Android 上,Java 可以调用 JNI,然后 JNI 调用回 Java 吗?

标签 java android java-native-interface

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

最佳答案

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

关于java - 在 Android 上,Java 可以调用 JNI,然后 JNI 调用回 Java 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17327584/

相关文章:

android - 如何在android中使用FFMPEG修剪视频

c++ - char* 的值在 ' __android_log_write' 之后更改

java - php javascript java applet 智能卡在服务器上签名pdf

java - Apache POI (DOCX) XWPFTable 非对称单元

android - Camera2 api Imageformat.yuv_420_888 在旋转图像上的结果

android - 问题 : Android's isConnected() used to get current state of WiFi often returns false even when the device is connected

java - 将 C 字符串数组移动到 Java 空间的更有效方法

java - 关于 concurrentHashMap 上的程序

java - 将表格边框设置为粗

java - 安卓工作室错误 :Unable to start the daemon process