android JNI : ReferenceTable overflow
来源:互联网 发布:如何设置淘宝客优惠券 编辑:程序博客网 时间:2024/04/30 11:05
ReferenceTable overflow 问题汇总
JNI层coding经常会遇到ReferenceTable overflow问题,特别是当jni函数被反复调用上千上万次的时候,现汇总如下,未完待续,并欢迎补充,(*^__^*) 嘻嘻……
总体原则:释放所有对object的引用
1.FindClass
例如,
jclass ref= (env)->FindClass("java/lang/String");env->DeleteLocalRef(ref);
2.NewString/ NewStringUTF/NewObject/NewByteArray
例如,
jstring (*NewString)(JNIEnv*, const jchar*, jsize); const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*); void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*);
jstring (*NewStringUTF)(JNIEnv*, const char*); const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*); void (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*);
env->DeleteLocalRef(ref);
3.GetObjectField/GetObjectClass/GetObjectArrayElement
jclass ref = env->GetObjectClass(robj);env->DeleteLocalRef(ref);
4.GetByteArrayElements
jbyte* array= (*env)->GetByteArrayElements(env,jarray,&isCopy);(*env)->ReleaseByteArrayElements(env,jarray,array,0);
4.const char* input =(*env)->GetStringUTFChars(env,jinput, &isCopy);
(*env)->ReleaseStringUTFChars(env,jinput,input);
5.NewGlobalRef/DeleteGlobalRef
jobject (*NewGlobalRef)(JNIEnv*, jobject); void (*DeleteGlobalRef)(JNIEnv*, jobject);
例如,
jobject ref= env->NewGlobalRef(customObj);env->DeleteGlobalRef(customObj);
0 0
- android JNI : ReferenceTable overflow
- JNI ReferenceTable overflow泄露问题
- JNI使用过程中出现的ReferenceTable overflow问题
- ReferenceTable overflow 问题汇总
- ReferenceTable overflow 问题汇总
- ReferenceTable overflow 问题汇总
- Android JNI调用OpenCV,长时间运行内存异常,导致闪退的log分析和解决---(ReferenceTable overflow (max=1024)造成的)
- ReferenceTable overflow (max=512)。
- ReferenceTable overflow (max=512)
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- NDK ReferenceTable overflow (max=512)的解决方法。
- NDK ReferenceTable overflow (max=512)的解决方法。(zt)
- 关于ReferenceTable overflow (max=512)的解决
- mixare的measureText方法在频繁调用时抛出“referencetable overflow max 1024”的解决方案
- Android JNI局部引用表溢出:local reference table overflow (max=512)
- 已知一个函数rand7()能够生成1-7的随机数,请给出一个函数rand10(),该函数能够生成1-10的随机数。
- 公务车订购国产化 多款车型入采购名单
- POJ 1948 Triangular Pastures (用所有的线段组成最大的三角形) DP || 携程员工运动会场地问题
- 十种常用排序算法浅析 附C++实现
- UINavigationController的横屏问题
- android JNI : ReferenceTable overflow
- 谈谈EJB是如何发布Web Service的
- 怎么引蜘蛛啊
- 平均背景提取2
- matlab中遇到的一些问题
- ListView中数据的更新显示
- 编译Android源码致命错误解决方案
- glob 通配符
- request.GetResponse 400错误处理