草庐IT

jmethodID

全部标签

android - jmethodID 的 NewGlobalRef

我遇到了一些看似容易的事情。我有一个native方法,它返回Java类(自定义)实例的jobjectArray。我所做的是获取我要实例化并返回的类的jclass,然后获取其构造函数的jmethodID。本地方法的签名是:JNIEXPORTjobjectArrayJNICALLJava_com_mn_rootscape_utils_NativeMethods_getFilesPermissions(JNIEnv*env,jobjectthizz,jobjectArrayfilePathsArray)命名空间和构造函数签名定义如下:constchar*kFilePermissionInfo

java - 为什么我不应该在 JNI 中重用 jclass 和/或 jmethodID?

这是一个与apreviouspost相关的问题。,但是这个帖子已经解决了,现在我想换个方向。使用JNI时,需要向JNIEnv对象询问jclass和jmethodID以获取每个将使用的类和方法在C/C++代码中。为了清楚起见,我想从C/C++调用Java构造函数或方法。由于从Java到C/C++(反之亦然)的通信成本很高,我最初认为减少这种情况的一种方法是重用jclass和jmethodID。因此,我将此实例保存在全局变量中,如下所示:jclasssomeClass=NULL;jmethodIDsomeMethod=NULL;JNIEXPORTjobjectJNICALLJava_exa

java - 为什么我不应该在 JNI 中重用 jclass 和/或 jmethodID?

这是一个与apreviouspost相关的问题。,但是这个帖子已经解决了,现在我想换个方向。使用JNI时,需要向JNIEnv对象询问jclass和jmethodID以获取每个将使用的类和方法在C/C++代码中。为了清楚起见,我想从C/C++调用Java构造函数或方法。由于从Java到C/C++(反之亦然)的通信成本很高,我最初认为减少这种情况的一种方法是重用jclass和jmethodID。因此,我将此实例保存在全局变量中,如下所示:jclasssomeClass=NULL;jmethodIDsomeMethod=NULL;JNIEXPORTjobjectJNICALLJava_exa