jni GetMethodID 例子
时间: 2023-10-15 10:04:11 浏览: 148
jni例子程序
JNI (Java Native Interface) 的 `GetMethodID` 函数用于获取 Java 类的方法的标识符。下面是一个简单的 JNI `GetMethodID` 的例子:
```c++
#include <jni.h>
JNIEXPORT void JNICALL Java_com_example_MyClass_nativeMethod(JNIEnv *env, jobject obj) {
// 获取 Java 类的方法的标识符
jclass clazz = env->GetObjectClass(obj);
jmethodID methodId = env->GetMethodID(clazz, "methodName", "()V");
// 调用 Java 方法
env->CallVoidMethod(obj, methodId);
// 清理资源
env->DeleteLocalRef(clazz);
}
```
在上面的例子中,`Java_com_example_MyClass_nativeMethod` 是一个 JNI 方法,对应于在 Java 层定义的 `nativeMethod` 方法。在该方法中,我们通过 `GetObjectClass` 函数获取了传入的 `obj` 对象的类,并使用 `GetMethodID` 获取了名为 `methodName`、参数为空、返回类型为 `void` 的方法的标识符。然后,通过 `CallVoidMethod` 调用了该方法。
请注意,上述代码只是一个简单的示例,实际应用中可能需要进行更多的错误检查和异常处理。
阅读全文