关于ReferenceTable overflow (max=512)的解决
来源:互联网 发布:闲鱼如何走淘宝 编辑:程序博客网 时间:2024/05/18 01:24
我的这个错误是这样产生的。我的程序大量使用java的jni功能,并在某些时候会频繁的java和C相互调用,这样在程序运行一段时间后就出现了题目中所说到的内容ReferenceTable overflow (max=512)。
从字面上我对这个错误的理解是这样的:java的垃圾处理里面有个叫引用计数的东东,我这里看到的错误貌似就是在说这个问题,引用计数表溢出?
于是我找了自己的代码,不停的屏蔽,发现错误竟然出现在<c中回调java方法>时候的这样一句话里:
void BluetoothRelayer_relayToBluetoothAdapter(unsigned char* buffer, int num)
{
// 创建一个新的数据对象,作为java函数调用的参数
jbyteArray data = (*s_env)->NewByteArray(s_env, num);
(*s_env)->SetByteArrayRegion(s_env, data, 0, num, buffer);
// java 调用
(*s_env)->CallVoidMethod(s_env, s_objBluetoothRelayer,s_midRelayToBluetoothAdapter, data, num);
//LOGI("BluetoothRelayer_relayToBluetoothAdapter data %p", data);
//(*s_env)->ReleaseByteArrayElements(s_env, data, buffer, 0);
(*s_env)->DeleteLocalRef(s_env, data); //回调java中的方法,必须delete,release无法释放其引用资源
}
注意:jbyteArray data = (*s_env)->NewByteArray(s_env, num);释放资源data??
将 (*s_env)->ReleaseByteArrayElements(s_env, data, buffer, 0);
改为 (*s_env)->DeleteLocalRef(s_env, data); 释放资源OK
- 关于ReferenceTable overflow (max=512)的解决
- ReferenceTable overflow (max=512)。
- ReferenceTable overflow (max=512)
- NDK ReferenceTable overflow (max=512)的解决方法。
- NDK ReferenceTable overflow (max=512)的解决方法。(zt)
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- 关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
- Android JNI调用OpenCV,长时间运行内存异常,导致闪退的log分析和解决---(ReferenceTable overflow (max=1024)造成的)
- mixare的measureText方法在频繁调用时抛出“referencetable overflow max 1024”的解决方案
- ReferenceTable overflow 问题汇总
- ReferenceTable overflow 问题汇总
- android JNI : ReferenceTable overflow
- ReferenceTable overflow 问题汇总
- JNI使用过程中出现的ReferenceTable overflow问题
- JNI ReferenceTable overflow泄露问题
- jni 内存泄露 local reference table overflow (max=512)
- linux(centos)搭建SVN服务器
- Chrome源码剖析
- 在同一台机器上运行多个Resin实例
- onvif简介及开发框架搭建
- htaccess实现PHP伪静态
- 关于ReferenceTable overflow (max=512)的解决
- 结构上的算法----二维数组
- 服务器安全配置参考
- C语言中memset函数详解
- [Java 12 IO] Scanner 输入数据类
- webkit on iOS 博客资源
- String s=new String("abc")创建了几个对象?
- 为生活可以忍,侮辱技术行不行?
- v8 gc