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 に答える