我的Android应用程序一直在我的手机上崩溃的原因,但不是在我的模拟器上

时间:2010-08-31 06:13:27

标签: android memory garbage-collection crash heap

我有一个使用相当多图形的应用程序。

当我在我的模拟器(1.5 - 2.2)上反复打开和关闭我的应用程序时,它运行正常,通过检查堆我可以看到所有内容都正在清理并正确接通。

然而,当我在HTC Aria手机(2.1)上运行我的应用程序时,每次尝试重新打开它时应用程序都会崩溃。当我查看堆时,我可以看到对象没有被清理,就像它们在模拟器中一样。

有谁知道为什么会发生这种行为?我确实在另一个HTC Aria(一个朋友)上尝试了它,它和我的手机一样崩溃,所以我认为它不仅仅与我的特定手机隔离。

任何想法或想法都会非常感激,为什么事情在模拟器上正常清理,而不是在我的手机上清理。有一点需要注意的是,我几天前在手机上工作正常,而且我没有太大变化,现在它不能在我的手机上工作,所以这对我来说有点神秘。 / p>

谢谢!

注意:
崩溃是由OutOfMemory异常引起的。我正在预加载一些图形,并且没有足够的内存使两个应用程序实例同时运行,因此它崩溃了,因为应用程序的第一个实例没有正确清理。

1 个答案:

答案 0 :(得分:2)

你有几个模拟器,都运行这个应用程序,关闭它并重新启动它。 您的Android设备有多个进程同时运行,如后台同步,Facebook通知,Twitter通知,日历同步,通讯录同步等。

查看此问题的一种方法是尝试在不同的模拟器上模仿Android设备状态,并查看是否可以在模拟器上获得相同的错误。使用一些在后台同步的应用程序和其他使用大量内存的应用程序。然后,您拥有一个模拟现实世界的测试环境,您可以将应用程序更改为不崩溃的状态。也许尽量缩小图像以减少内存使用。

请记住,您永远不能强迫Garbace收集器启动。您只能告诉系统可以收集这些垃圾。