Failed to allocate memory: 8

从今天开始,当我尝试在2.3.3 Android平台的NetBeans中运行一个应用程序时,它向我显示:

Failed to allocate memory: 8

这个应用程序请求运行时以一种不寻常的方式终止它。

.请与应用程序的支持团队联系以获取更多信息

模拟器不想启动。

这是我第一次看到它,谷歌没有这个asnwers,我尝试了2个版本的NetBeans 6.9.1和7.0.1,仍然是相同的错误。

234420 次浏览

我想明白了。问题是在我为虚拟机指定的ram数量上,它是1024MB,现在我有512MB,这是可以的,现在我需要找到如何提高这个ram数量,512不是很多,而且机器有点滞后。

我的机器有16gb和3.4 Ghz的四核处理器。虚拟机也不允许我在1024上运行它。我确实把它提升到878MB,因为它在880的时候失败了,发出了相同的消息。这似乎是我可以分配给模拟器的最大内存。它仍然很慢,但我假设它比512MB要好。

我意识到这个问题的解决方案源于在正常模式下运行应用程序时的Eclipse内存分配。我刚刚检查了Eclipse快捷属性下的“以管理员身份运行”框,现在它允许我为AVD分配更多内存。

希望这能有所帮助。

我有同样的问题,但在我得到这个问题之前,它要求我捕获一个视频源。

我禁用了相机支持,我能够使用1024MB of RAM

使用Windows 64bit, Xoom (Android 3.0)

参考Android:分配内存失败及其在accepted answer下的第一个注释,将“1024”更改为“1024MB”对我有帮助。可悲,但有效。

我遍历了这篇文章中提到的所有其他解决方案,但没有发现任何有效的解决方案,所以我稍微研究了一下。由于某种原因,API的谷歌版本在我身上失败了。我把它改回香草味,而且不再崩溃了。

我肯定有其他问题,但也许这将帮助某人…

看起来有一千种不同的修复方法…以上这些方法对我来说都不适用,但有效的是从命令行模拟器-arm.exe @AVD-NAME启动AVD

如果只使用simulator .exe启动,我将得到与尝试通过Eclipse启动时相同的错误消息。

我注意到它只与一个相关,而所有其他的我都做得很好。我删除了它,并创建了一个新的,现在它工作了。

在我的情况下,将屏幕分辨率从WVGA720更改为WSVGA对我来说是有效的。

看看官方的发行33930。有人指出,这可能与在模拟器启动期间启动OpenGL有关。其他人则写它只在使用WXGA800-skin时崩溃,并建议手动设置分辨率为800x1280。

此外,还提供了zip文件来手动将android SDK降级到版本19和平台工具降级到版本11。这可能有助于暂时解决问题。

我从AVD的启动选项中更改了显示器的DPI设置,并将其与显示器的原始和当前设置同步,它工作了。

问题在于内存碎片。操作系统必须将你为vm指定的所有ram(比如1Gb)分配为一个连续的块。有时没有这样的障碍。若要修复该问题,请关闭正在运行的程序,然后运行avd并启动虚拟机。

在我的例子中:

  • 使用WXGA720内置模拟720p设备,总是得到这个错误
  • 手动设置AVD分辨率到720 x 1280,为我工作

希望能有所帮助~

对我来说,在Windows上有效的是:

1)关闭Eclipse 2)运行Avd UI 3)关闭所有正在运行的进程,特别是内存占用较大的进程,如Chrome、explorer.exe等 4)启动模拟器 5)赢得< / p >

请确保IntelHAXM已正确安装。下载和“安装”是不够的。它通过SDK管理器。你需要手动安装它从:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

另外,请确保在BIOS中启用了Intel Virtual Technology。

遵循developer.android.com英特尔的安装说明上的指导。

而是使用512 Mb。以上的方法都不适合我。

唯一可靠的解决这个问题的方法是投票给这个错误报告

这个问题与模拟器分辨率或OpenGL无关,也与你的计算机有多少内存无关。我的电脑有24GB内存,大多数时候我用hw.ramSize=1024运行,我会得到错误8。其他时候,它工作得很好,不需要任何配置更改。我希望您注意到:我根本没有更改模拟器配置,但有时它会运行,有时会失败。

这很有可能与内存碎片有关。我建议减少hw.ramSize的值作为临时解决方案。

我通过改变设备屏幕大小克服了这个问题。

我发现如果你指定1024 mb ram,那么你必须在hdpi中指定设备屏幕大小,如果它是512 mb ram,那么它应该是mdpi或其他。

因此,我们可以清楚地说,ram大小应该根据屏幕大小指定。如果你在mdpi中指定1024 ram大小,同时保持设备屏幕大小,那么它会导致上面提到的错误,即“未能分配内存:8这个应用程序已经请求运行时以一种不寻常的方式终止它。

请联系应用程序的支持团队以获取更多信息。”

在AVD管理器中设置如下选项:

[2013-01-11 14:44:01 - SDK Manager] hw.sensors.orientation=yes

[2013-01-11 14:44:01 - SDK Manager] h.c ame .front=none

[2013-01-11 14:44:01 - SDK Manager] hh .gps=yes

[2013-01-11 14:44:01 - SDK Manager] skin.dynamic=no

[2013-01-11 14:44:01 - SDK Manager] hw.keyboard=no

[2013-01-11 14:44:01 - SDK Manager] vm.heapSize=32

[2013-01-11 14:44:01 - SDK Manager] hw.ramSize=343

我解决的方法是把存储大小放在RAM大小的2倍,把SD存储大小放在RAM大小的相同位置。

你只需要编辑你的虚拟设备的内存,使它更低!尝试20 MB,它将工作!