完成后:
jmethodID mid = (*env)->GetMethodID(env, cls, "run", "()V");
如何获取运行地址,以便将函数指针作为参数传递给 C 函数?也许是一些jmethodID
字段?我在 jni 文档中找不到它。谢谢。
最佳答案
您在 C/C++ 中填充的方法将如下所示:
#include "MyTest.h"
JNIEXPORT void JNICALL
Java_InstanceMethodCall_nativeMethod(JNIEnv *env, jobject obj)
{
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID mid = (*env)->GetMethodID(env, cls, "run", "()V");
(*env)->CallVoidMethod(env, obj, mid);
}
签名是使用javah生成的。
关于java - 获取JNI中的方法地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604257/