jni缓存共享jclass (globalRef)
来源:互联网 发布:西安鼓楼网络售票 编辑:程序博客网 时间:2024/06/05 20:14
jni缓存共享jclass(globalRef)
在jni中经常会需要调用java的方法,并且可能在不同线程中都会去调用,另外可能调用次数比较多,这样的话,如果每次都是通过jclass localClass
= env->FindClass("com/test/Test");这样类似的方法去得到jclass,然后去获取jmethodid等,效率会比较低,如果只获取一次,可能报JNI ERROR (app bug): accessed stale local reference 0x5900021这个错,这个错个人理解是引用被删除了,你继续去访问使用,也就是说由于产生的jclass是local refrence调用完成后被销毁了,因此我们需要搞一个globalref出来,方法与tip4类似:
jclass localClass
= env->FindClass("com/test/Test");
globalClass=(jclass)env->NewGlobalRef(localClass);
env->DeleteLocalRef(localClass);
这样就可以了,别忘了最后用完了再合适的地方去删除global应用,见tip4
0 0
- jni缓存共享jclass (globalRef)
- 小谈jni jobject jclass
- JNI参数jobject和jclass
- JNI笔记 Jclass Jobject JNI数据类型
- JNI中的jclass和jobject的区别
- 转载:JNI中的jclass和jobject
- 【Tech-Android-Jni】Jni的Jclass JmethodID JfrieldID的差异
- JNI中FindClass和GetObjectClass都是返回jclass
- CMD编译JNI头文件方法 jobject/jclass 参数
- 调用CallStaticObjectMethod报出JNI DETECTED ERROR IN APPLICATION: jclass is an invalid local reference:
- Unity Android 5.0上 JNI DETECTED ERROR IN APPLICATION: jclass is an invalid local reference
- JNI 共享内存
- JNI 引用与缓存
- JNI引用与缓存
- JNI开发之缓存
- 文件共享缓存设置
- 共享池---sql缓存
- ehcache 实现缓存共享
- Rocketmq 消息的解压缩
- 数据库相关
- MySQL索引原理及慢查询优化
- 最小的k个数
- DTD
- jni缓存共享jclass (globalRef)
- Charles抓取https
- 人生哲理,句句有理
- HttpClient POST 中文乱码问题
- SGU 507 Treediff(平衡树)
- lightoj1138数学—数学小知识点
- mysql索引总结----mysql 索引类型以及创建
- codeforces 710C Magic Odd Square 【杂类】
- 用递归方法求解(1)