内存分配失败:8

370

今天起,我在2.3.3的Android平台上尝试在NetBeans中运行一个应用程序时,出现以下提示:

无法分配内存:8

此应用程序已请求Runtime以不寻常的方式终止它。 有关更多信息,请联系应用程序的支持团队。

模拟器也无法启动。

这是我第一次看到这种情况,谷歌上没有相关答案。我甚至尝试了NetBeans 6.9.1和7.0.1的两个版本,但仍然出现相同的错误。


3
为什么你使用 NetBeans 而不是 Eclipse,我很好奇。我用 NetBeans 做其他事情(主要是 PHP),但发现用 Eclipse 做 Android 开发更容易。你认为相较于 Eclipse,NetBeans 有哪些优点? - SBerg413
3
我以前从未使用过 Eclipse,但我不知道为什么我讨厌它。GUI 和 NetBeans 相比,它甚至更加复杂。但目前我正在下载它并尝试使用,如果问题消失了,我将只在其中制作 Android 应用程序。 - Denees
48
哇,那个评论里的逗号用的太多了。无论如何,请确保你的 AVD 使用适量的 RAM(即足够运行但不超出计算机承受范围)。这是在创建虚拟设备时设置的。 - Glendon Trullinger
2
仅供参考,我的电脑配置是Core i7处理器和16GB内存,我已经将AVD的内存升级到最大,但它们仍然很卡。:/ - Jack
1
我有一台运行在Intel Core i7处理器上的Windows 8 64位机器。为了使AVD(Nexus 7)正常运行,我不得不将RAM设置降至512MB。 - IgorGanapolsky
显示剩余4条评论
20个回答

5

我机器的配置是16GB内存和3.4 GHz四核处理器。虚拟机不允许我以1024MB的内存运行它。我尝试将内存增加到878MB,因为在880MB时会出现同样的错误提示。这似乎是我可以分配给模拟器的最大内存。虽然速度仍然很慢,但我认为这比512MB好。


5

我通过 AVD 的启动选项更改了我的显示器 DPI 设置,并将其与我的显示器的原始和当前设置同步,这样就可以正常使用了。


4

我通过将存储大小设置为RAM大小的两倍,并将SD存储大小设置为RAM大小来解决了这个问题。


3

问题在于内存碎片化。操作系统需要将您指定的所有RAM(例如1GB)分配为一个连续的块。有时并不存在这样的块。要解决此问题,请关闭运行中的程序,然后运行AVD并启动虚拟机。


3

我曾经遇到过同样的问题,但在问题发生前,它要求我捕捉一个视频源。

我禁用了相机支持后,就能使用1024MB的RAM

使用Windows 64位,Xoom (Android 3.0)


3
在我的情况下,将屏幕分辨率从WVGA720更改为WSVGA对我有用。

2

在Windows上对我有用的是:

1)关闭Eclipse 2)运行Avd UI 3)关闭所有正在运行的进程,特别是那些占用大量内存的进程,比如Chrome,explorer.exe等 4)启动模拟器 5)完成


2

你只需要编辑虚拟设备的RAM,降低它的数值!尝试将其设置为20MB,这样就可以正常运行了!


2
请确保IntelHAXM已正确安装。仅通过SDK Manager下载和“安装”不足以完成安装。您需要从以下位置手动安装:android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager
另外,请确保在您的BIOS中启用了Intel虚拟技术。
请按照developer.android.comIntel的安装说明进行操作。

1

我注意到这只与一个 AVD 有关,而我使用的其他 AVD 都正常。我将其删除并创建了一个新的,现在它可以正常工作。


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