设备和模拟器都出现了OutOfMemory问题

5
我在模拟器和设备(acer平板和三星galaxy)上运行项目时遇到了OutOfMemory异常,显示应用程序启动器进程com.android.launcher意外停止。我已将模拟器的虚拟机大小增加到256mb,但异常仍然存在。我该如何避免这种异常?如何增加模拟器和设备的堆进程大小?请参考此问题

1
它可能与您的项目有特定关联吗?您做了什么导致内存异常?堆栈跟踪是什么? - codeScriber
我建议您使用相对较低的虚拟内存大小运行程序,并在失败时进行内存转储。 - Aleksi Yrttiaho
你的应用程序中使用了位图吗? - Joru
展示你的代码。如果你有一个ListView,请展示它的适配器代码。 - Sherif elKhatib
各种猜测都有可能。了解您的应用程序并查看一些代码可能会帮助我们做出正确的猜测。这不是常见问题,请添加有关您的应用程序的详细信息;它的主要功能以及您的主要活动的“onCreate”代码至少需要提供。 - Ron
显示剩余8条评论
2个回答

5
我不知道您运行的是什么应用程序,但您的应用程序可能存在内存泄漏问题。这时,无论您设置虚拟机大小多大都没有用。
请参考以下视频,了解如何查找自己应用程序中的内存泄漏。该方法适用于设备和模拟器。(我上周发现了一个非常严重的内存泄漏问题,而我之前并不知道应用程序中存在这个问题)http://www.youtube.com/watch?v=_CruQY55HOk&feature=player_embedded

视频中的演示非常有用 - 演讲者是 Google 的 Android 团队成员(这次演讲来自 Google IO)。关于内存分析工具的部分非常出色。 - James Moore
据我所知,这是发现应用程序内存泄漏的唯一简便方法。它对我帮助很大。 - Peter Fortuin

0

除非你在做一些极端的事情并且实际上需要大量的内存,否则你不应该采取增加内存占用的措施。导致这个问题的错误可能会超过你提供的任何额外内存。

仔细查看内存溢出错误之前发生了什么。我最近因为引起了无限配置更改循环而看到了这个错误。唯一能停止这个无限循环的是内存耗尽。

虽然错误上面的几行看起来很正常,但我意识到日志条目的数量比正常情况下要高得多,因为它反复运行我的活动初始化。

你的问题可能不同,但我相当确定增加堆大小不会解决它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接