Android模拟器上的内存不足错误,但不在设备上

时间:2011-09-15 08:00:59

标签: android out-of-memory

在Android模拟器上,当我退出应用程序并立即再次运行时,我得到了

OutOfMemoryError: bitmap size exceeds VM budget.

但是在设备本身,这不会发生。为什么呢?

6 个答案:

答案 0 :(得分:15)

在模拟器上,默认的最大堆大小约为13MB。

在设备上,它取决于手机和Android版本。在我的摩托罗拉Droid上,最大堆大小约为21-22MB,而我的HTC Desire则大约为32MB。

这就是您在模拟器上崩溃而不是在设备上崩溃的原因。

如果要监视应用程序的堆大小,可以调用类似的方法:

protected void displayMemoryUsage(String message) {
    int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L);
    String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes);
    Log.d(TAG, usedMegsString);
}

答案 1 :(得分:13)

在VM选项中增加AVD RAM和最大VM应用程序堆大小。

要做到这一点,请转到

窗口 - > AVD管理器 - >虚拟设备 - >编辑。

答案 2 :(得分:5)

你需要为模拟器增加堆大小 - 它对我有用 我将它从 16 M增加到32 M

答案 3 :(得分:3)

这是一个懒惰的如何从Andriod studio 1.2.0找到操作模拟器的heapsize的选项

  1. 菜单工具 - > Android-> AVD Manager
  2. 编辑选择的虚拟设备
  3. 点击高级设置并向下滚动
  4. Change VM heap in android studio

答案 4 :(得分:1)

可能是因为你的设备比你的模拟器有更多的内存。 This SO question向您展示了如何增加模拟器的大小。

另外你可以increase the Java VM Heap size

答案 5 :(得分:0)

增加分配的内存大小......