Pan*_*sis 3 c java methods java-native-interface
我试图从另一个方法的本机实现中调用私有方法,如下所示:
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID output_mid = (*env)->GetMethodID(env, cls, "methodName", "(Ljava/lang/String;)V");
if (output_mid == 0)
{
// Exit
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个“找不到方法”的异常。据我所知,类对象必须与定义目标方法的类相对应,因为它是私有的。
事实上,如果我将访问修饰符更改为 protected,错误就会消失。另外从日志中,我看到 GetObjectClass 返回了运行时类,而不是基类。所以,我的问题是:如何在 JNI 中获取正确的基类?
| 归档时间: |
|
| 查看次数: |
3716 次 |
| 最近记录: |