如何解释安卓原生代码中的JNI错误?这个错误的含义是什么



我的Android应用程序在JNI代码中崩溃,LogCat显示以下输出,导致此故障的可能原因是什么?如何在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)

这里有类似的问题。。请看这里。。可能会在某个地方帮助您

从一开始就很清楚问题出在JNI中,我交叉检查了本机代码,发现我在JNI中使用的memset()memcpy()字节数错误。我更正了代码,问题就解决了。

对于其他面临相同问题的用户,"请检查您在本机代码中的内存使用情况。"

最新更新