jmethodID的NewGlobalRef(NewGlobalRef for jmethodID)和DeleteLocalRef
来源:互联网 发布:云计算paas平台 编辑:程序博客网 时间:2024/06/05 13:23
一开始我以为所有的引用在JNI中都是分成三个等级的引用分类。我的需求是为了提高全局jmethodID 变量在一个函数执行完后还可以用。所以用下面这个方法希望可以转换为全局引用。
jobject (*NewGlobalRef)(JNIEnv*, jobject);
但是总是报错
JNI DETECTED ERROR IN APPLICATION: native code passing in reference to invalid stack indirect reference table or invalid reference: 0xfff5f1b0in call to NewGlobalRef
一直找不到解决办法。
后来这篇文章说jmethodID没有全局引用这个玩意,因为他不是jobject这个类型变量,一看果然是。jobject其实就是void *指针。而jmethodID是一个结构体。
所以最后说不要尝试给jmethodID转换为全局引用,以及释放jmethodID类型变量。能转变为全局引用的必定是jobject及其变种,说白了就是实例。如下:
/* * Reference types, in C. */typedef void* jobject;typedef jobject jclass;typedef jobject jstring;typedef jobject jarray;typedef jarray jobjectArray;typedef jarray jbooleanArray;typedef jarray jbyteArray;typedef jarray jcharArray;typedef jarray jshortArray;typedef jarray jintArray;typedef jarray jlongArray;typedef jarray jfloatArray;typedef jarray jdoubleArray;typedef jobject jthrowable;typedef jobject jweak;
参考:
stackoverflow
blog
jmethodID不能转换为全局引用,也不用释放。
0 0
- jmethodID的NewGlobalRef(NewGlobalRef for jmethodID)和DeleteLocalRef
- 【Tech-Android-Jni】Jni的Jclass JmethodID JfrieldID的差异
- JNI中的全局引用、局部引用、弱全局引用 AND 缓存jfieldID和jmethodID的两种方法
- JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式
- JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式
- 六、(2)缓存jfieldID、jmethodID
- 传智播客JNI第七讲 - JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式
- 本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- JNI学习笔记5——本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- for each和for循环的对比
- for,for-in和enumerateObjectsUsingBlock的比较
- js for 和 for in的区别
- for和for in的区别
- for in 和 for of 的区别
- for in 和 for of的区别
- For 和 Foreach 的比较
- For 和 Foreach 的比较
- for和foreach的选择
- 重新安装eclipse需要做的几件事
- 《Android群英传》---读书笔记4
- 编译原理初探(续)
- Android view(二)
- POJ 1061 青蛙的约会
- jmethodID的NewGlobalRef(NewGlobalRef for jmethodID)和DeleteLocalRef
- XX银行数据中心建设方案
- 《团队执行力》分享记录
- git协作
- finished with non-zero exit value 42的解决办法
- CSS3 opacity 属性设置 div 元素的不透明级别:
- Java学习篇之IO流相关知识梳理
- 安卓实现图片缩放平移的基本步骤
- Tomcat的安装和简单配置