1

私はこの問題を抱えていますAndroid:画面の向きのエラー+ VMではxバイト を割り当てることができないため、EclipseMemoryAnalyzerをダウンロードすることにしました。エラーが表示され、3つの問題が疑われるときに実行しますが、どこから発生するのかわかりません。+リークの可能性があるのは2.2;Bスペースしかないため、問題がメモリリークによるものかどうかはわかりません。 ここに画像の説明を入力してください

問題の疑い1

2,094 instances of "java.lang.Class", loaded by "<system class loader>" occupy 789,200 (33.76%) bytes. 

Biggest instances:
•class android.text.Html$HtmlParser @ 0x4018d3f0 - 126,632 (5.42%) bytes. 
•class org.apache.harmony.security.fortress.Services @ 0x400e2e58 - 53,880 (2.30%) bytes. 
•class com.android.internal.R$styleable @ 0x400882c0 - 38,072 (1.63%) bytes. 
•class libcore.icu.TimeZones$CachedTimeZones @ 0x40444fa8 - 37,712 (1.61%) bytes. 
•class android.R$styleable @ 0x40055940 - 37,640 (1.61%) bytes. 
•class android.content.res.Resources @ 0x40075178 - 36,032 (1.54%) bytes. 
•class android.text.AutoText @ 0x40178980 - 31,656 (1.35%) bytes. 


Keywords
java.lang.Class

問題の疑い2

128 instances of "org.bouncycastle.jce.provider.X509CertificateObject", loaded by "<system class loader>" occupy 455,112 (19.47%) bytes. These instances are referenced from one instance of "java.util.Hashtable$HashtableEntry[]", loaded by "<system class loader>"

Keywords
org.bouncycastle.jce.provider.X509CertificateObject
java.util.Hashtable$HashtableEntry[]

問題の疑い3

6,822 instances of "java.lang.String", loaded by "<system class loader>" occupy 418,104 (17.89%) bytes. 

Keywords
java.lang.String

漏れがあると思いますか?私が投稿したものから言えますか?ありがとうございました

4

1 に答える 1

0

Android では、Activity コンテキストをリークするのは非常に簡単だと思います。そのため、私がメモリ リークを見つけるために使用した最も頻繁な方法は、OQL タブを開いて 'select * from instanceof android.app.Activity' と入力することです。そうすれば、Activity インスタンスがいくつあるかを確認でき、リークがあるかどうかを自分の判断で判断できます。また、Activity インスタンスの 1 つを右クリックし、[GC へのパス] をクリックして、[すべてのソフト/弱い/ファントム参照を除外] をクリックすることもできます。次に、チェーン内のアクティビティへの参照を確認できます。幸運を !

于 2013-11-21T04:14:02.860 に答える