0

Eclipse で DDMS を使用すると、新しいアクティビティが読み込まれると、割り当てられたメモリが 1 秒で 18 MB から約 53 MB に増加し、アクティビティの読み込みが完了すると通常の 23 ~ 28 MB に戻ることに気付きました。

私のアプリは着せ替えゲームなので、たくさんの画像が含まれています。ただし、すべての画像のサイズは 5 MB に達しません。通常の 23 ~ 28 MB に戻ったので、リークはないと思います。

onCreate は、主にすべてのビューの findViewById に使用されます。

時々エラーが発生します:

08-16 16:16:56.160: E/AndroidRuntime(22614): FATAL EXCEPTION: main
08-16 16:16:56.160: E/AndroidRuntime(22614): java.lang.RuntimeException: Unable to start activity ComponentInfo{com......}: android.view.InflateException: Binary XML file line #243: Error inflating class <unknown>
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: android.view.InflateException: Binary XML file line #243: Error inflating class <unknown>
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: java.lang.reflect.InvocationTargetException
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: java.lang.OutOfMemoryError
08-16 16:16:56.160: E/AndroidRuntime(22614):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

OutOfMemoryError に注意してください。

私に何ができる?

4

1 に答える 1

0

アプリ起動時のメモリ スパイクは、レイアウトの 1 つで使用しているリソースを OS が解凍するためだと思います。これもおそらく OutOfMemoryError 例外の原因です。

初期レイアウトで使用しているリソース (画像など) を見直して、それらが大きすぎないことを確認してください。

于 2013-08-16T13:37:30.037 に答える