如何解释Android本机代码中的JNI错误?这个错误的含义是什么?
我的Android应用程序崩溃在JNI代码和LogCat显示以下输出,这可能是什么原因导致这种失败?我如何管理JNI内部的本机内存?如何解释Android本机代码中的JNI错误?这个错误的含义是什么?
07-16 11:51:19.500: W/dalvikvm(15869): threadid=4: spin on suspend #1 threadid=3 (pcf=0)
07-16 11:51:20.242: W/dalvikvm(15869): threadid=4: spin on suspend #2 threadid=3 (pcf=0)
07-16 11:51:20.242: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:20.242: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:20.242: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:20.242: I/dalvikvm(15869): | schedstat=(1251222 701905 25)
07-16 11:51:20.242: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:20.242: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:20.242: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:20.242: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:20.242: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:20.281: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:21.054: W/dalvikvm(15869): threadid=4: spin on suspend #3 threadid=3 (pcf=0)
07-16 11:51:21.054: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:21.054: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:21.054: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:21.054: I/dalvikvm(15869): | schedstat=(2502444 65551756 35)
07-16 11:51:21.054: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:21.054: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:21.054: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:21.054: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:21.054: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:21.117: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:21.914: W/dalvikvm(15869): threadid=4: spin on suspend #4 threadid=3 (pcf=0)
07-16 11:51:21.914: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:21.914: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:21.914: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:21.914: I/dalvikvm(15869): | schedstat=(3479006 203796386 45)
07-16 11:51:21.914: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:21.914: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:21.914: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:21.914: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:21.914: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:22.015: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:22.796: W/dalvikvm(15869): threadid=4: spin on suspend #5 threadid=3 (pcf=0)
07-16 11:51:22.796: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:22.796: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:22.796: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:22.804: I/dalvikvm(15869): | schedstat=(4821778 368194582 56)
07-16 11:51:22.804: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:22.804: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:22.804: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:22.804: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:22.804: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:22.867: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:23.617: W/dalvikvm(15869): threadid=4: spin on suspend #6 threadid=3 (pcf=0)
07-16 11:51:23.617: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:23.617: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:23.617: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:23.617: I/dalvikvm(15869): | schedstat=(5706788 437561037 64)
07-16 11:51:23.617: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:23.617: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:23.617: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:23.617: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:23.617: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:23.695: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:24.445: W/dalvikvm(15869): threadid=4: spin on suspend #7 threadid=3 (pcf=0)
07-16 11:51:24.445: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:24.445: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:24.445: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:24.445: I/dalvikvm(15869): | schedstat=(6744387 515899659 74)
07-16 11:51:24.445: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:24.445: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:24.445: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:24.445: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:24.445: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:24.445: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:25.195: W/dalvikvm(15869): threadid=4: spin on suspend #8 threadid=3 (pcf=0)
07-16 11:51:25.195: I/dalvikvm(15869): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 11:51:25.195: I/dalvikvm(15869): | group="system" sCount=0 dsCount=0 obj=0x405115e8 self=0x159898
07-16 11:51:25.195: I/dalvikvm(15869): | sysTid=15873 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1575600
07-16 11:51:25.195: I/dalvikvm(15869): | schedstat=(7751467 517486574 82)
07-16 11:51:25.195: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
07-16 11:51:25.195: I/dalvikvm(15869): "GC" daemon prio=5 tid=3 RUNNABLE
07-16 11:51:25.195: I/dalvikvm(15869): | group="system" sCount=1 dsCount=0 obj=0x40511540 self=0x159d70
07-16 11:51:25.195: I/dalvikvm(15869): | sysTid=15872 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=1422192
07-16 11:51:25.195: I/dalvikvm(15869): | schedstat=(149871827 1162109373 98)
07-16 11:51:25.203: I/dalvikvm(15869): at dalvik.system.NativeStart.run(Native Method)
类似的问题here..Please看到here ..Might帮助你的地方
即使我们的显示名称是相同的... lolz ...我手动尝试并且问题有点解决...但是必须有一些这些类型的错误的参考或一些工具来跟踪本机内存分配... – aProgrammer 2012-07-16 07:58:14
Yaa。 ..你发布的问题有点小,我以前面临...仍然研究将帮助它解决你的问题。 – 2012-07-16 08:02:58
正是从这个问题是在JNI开始就明确,我穿过检查本机代码,发现我所用memset()
和memcpy()
in JNI错误的字节数。我纠正了代码并解决了问题。
对于其他面临同样问题的人,“请检查您的内存使用情况在本地代码。”
线程问题?比赛状况可能? – Tancho 2012-07-17 09:58:53