jni 内存泄露 local reference table overflow (max=512)

01-02 00:02:35.064: E/dalvikvm(4223): JNI ERROR (app bug): local reference table overflow (max=512)

向JNI传递大量的数据,或new出大量对象时,如果不及时释放,则会造成上述错误。

1.在将java string转换为native string之后,要调用ReleaseStringUTFChars释放。

if (MNull != pszPath && MNull != strJString)
{
env->ReleaseStringUTFChars(strJString, pszPath);
}

2.用完java传递过来的obj之后,调用(env)->DeleteLocalRef(obj);释放

参考资料:

http://stackoverflow.com/questions/4174453/android-native-process-provoke-referencetable-overflow-after-a-while-android-n

http://stackoverflow.com/questions/9372373/referencetable-overflow-max-512-jni


原文链接:http://www.cnblogs.com/androidwsjisji/archive/2012/05/11/2495399.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值