0

在 Eclipse 上使用 DDMS,我注意到在加载新活动时分配的内存在一秒钟内从 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

我认为启动应用程序时的内存峰值是由于操作系统解压缩了您在其中一个布局中使用的资源。这也可能是 OutOfMemoryError 异常的原因。

查看您在初始布局中使用的资源(图像等),并确保它们不会太大。

于 2013-08-16T13:37:30.037 回答