2011-01-07 8 views
0
[ 01-01 08:29:02.954 1511:0x5e7 E/dalvikvm ] 
HeapWorker is wedged: 10330ms spent inside Landroid/content/ContentResolver$CursorWrapperInner;.finalize()V 
[ 01-01 08:29:02.954 1511:0x5e7 I/dalvikvm ] 
DALVIK THREADS:  
[ 01-01 08:29:02.954 1511:0x5e7 I/dalvikvm ] 
"main" prio=5 tid=1 RUNNABLE  
[ 01-01 08:29:02.954 1511:0x5e7 I/dalvikvm ] 
    | group="main" sCount=0 dsCount=0 s=N obj=0x400258c8 self=0xcd98 
[ 01-01 08:29:02.954 1511:0x5e7 I/dalvikvm ] 
    | sysTid=1511 nice=0 sched=0/0 cgrp=default handle=-1345021912 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.lang.AbstractStringBuilder.toString(AbstractStringBuilder.java:Note: 0000662) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.lang.StringBuilder.toString(StringBuilder.java:664) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.io.File.join(File.java:264) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.io.File.<init>(File.java:175) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.io.File.<init>(File.java:142) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.io.File.filenamesToFiles(File.java:1082) 
[ 01-01 08:29:02.977 1511:0x5e7 I/dalvikvm ] 
    at java.io.File.listFiles(File.java:1008) 

この問題を解決するにはどうすればよいですか?HeapWorker Androidのパフォーマンス

根本的な原因は多くの一時変数が作成されることです。

答えて

3

間違ったスレッドのスタックトレースが表示されています。

問題は、ファイナライザが完了するまでに10秒以上かかるため、VMはデッドロックしているとみなし、アプリケーションが再起動するのを中止しました。この場合、stalled関数はandroid.content.ContentResolver.CursorWrapperInner.finalize()です。

近くのHeapWorkerスレッドのスタックトレースが必要です。

+0

HeapWorkerが揺さぶられている:33299msがLandroid/database/sqlite/SQLiteCompiledSql; .finalize()V'内で費やされました。 –

+0

ファイナライザBTWとは何ですか? –

+0

また、これはNexus 4でうまく動作するエミュレータでのみ発生します。 –

関連する問題