0

我的 Android APP 在 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)
4

2 回答 2

1

类似的问题在这里..请看这里..可能会在某个地方帮助你

于 2012-07-16T07:06:00.333 回答
0

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

对于其他面临相同问题的人,“请检查本机代码中的内存使用情况。”

于 2012-07-17T10:31:19.747 回答