JNI中多次调用NewObject导致jvm崩溃

LONWORKS 2012-09-21 05:33:14
实现代码:
JNIEXPORT void JNICALL Java_com_xxx_yyy_newObjects (JNIEnv *env, jobject)
{
int len = 100;
for (int i = 0; i < len; i++)
{
jobject output = env->NewObject(g_OutIds.jCls, g_OutIds.mid_construct, "");
if (NULL == output)
{
std::cout << i << "\tNewObject(g_OutIds) failed" << std::endl;
}
else
{
std::cout << i << "\tNewObject(g_OutIds) succeeded" << std::endl;
}
}
}

每次都是在成功循环34次后,jvm崩溃。输出错误:
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00002b196fe93aca, pid=12073, tid=1080133952
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0x3b8aca]
#
# An error report file with more information is saved as:
# Path/hs_err_pid12073.log

请各位高手指点
...全文
909 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫_问 2014-03-27
  • 打赏
  • 举报
回复
引用 5 楼 hsfeng9 的回复:
JNIEXPORT void JNICALL Java_com_xxx_yyy_newObjects (JNIEnv *env, jobject) { int len = 100; for (int i = 0; i < len; i++) { jobject output = env->NewObject(g_OutIds.jCls, g_OutIds.mid_construct, ""); if (NULL == output) { std::cout << i << "\tNewObject(g_OutIds) failed" << std::endl; } else { std::cout << i << "\tNewObject(g_OutIds) succeeded" << std::endl; //自己在这里调用DeleteLocalRef 进行output 的释放 } } }
好厉害,这个都知道了,小宝贝
hsfeng9 2014-03-03
  • 打赏
  • 举报
回复
JNIEXPORT void JNICALL Java_com_xxx_yyy_newObjects (JNIEnv *env, jobject) { int len = 100; for (int i = 0; i < len; i++) { jobject output = env->NewObject(g_OutIds.jCls, g_OutIds.mid_construct, ""); if (NULL == output) { std::cout << i << "\tNewObject(g_OutIds) failed" << std::endl; } else { std::cout << i << "\tNewObject(g_OutIds) succeeded" << std::endl; //自己在这里调用DeleteLocalRef 进行output 的释放 } } }
hsfeng9 2014-03-03
  • 打赏
  • 举报
回复
引用 3 楼 wafdaffdafda 的回复:
new、FindClass的对象,需要DeleteLocalRef,jni里面本地变量个数是有限制的。
是的
android_UFO 2013-09-24
  • 打赏
  • 举报
回复
new、FindClass的对象,需要DeleteLocalRef,jni里面本地变量个数是有限制的。
wula0010 2012-09-21
  • 打赏
  • 举报
回复
看这个日志了:# Path/hs_err_pid12073.log
healer_kx 2012-09-21
  • 打赏
  • 举报
回复
不晓得了。。。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧