无法分配内存:8

时间:2011-08-28 18:14:30

标签: android netbeans android-emulator

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

  

无法分配内存:8

     

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

并且模拟器不想启动。

这是我第一次看到它,并且谷歌没有相关信息,我甚至尝试了两个版本的NetBeans 6.9.1和7.0.1,仍然是同样的错误。

20 个答案:

答案 0 :(得分:373)

我明白了。问题在于我为虚拟机指定的ram数量,它是1024MB,现在我有512MB并且没关系,现在我需要找到如何提高这个ram数量,512不是那么多,并且机器有点滞后。

答案 1 :(得分:61)

参考Android: failed to allocate memory及其在接受答案下的第一条评论,将“1024”更改为“1024MB”对我有帮助。可悲,但有效。

答案 2 :(得分:43)

就我而言:

  • 使用内置的WXGA720模拟720p设备,总是出现此错误
  • 手动设置AVD分辨率为720 x 1280,适合我
希望它有所帮助〜

答案 3 :(得分:30)

您在此处和其他地方阅读的其他内容都是纯粹猜想。解决此问题的唯一可靠方法是投票支持bug report

问题与仿真器分辨率或OpenGL无关,也与计算机的内存量无关。我的计算机内存有24GB内存,大多数情况下我使用hw.ramSize=1024运行时出现错误8.其他时候它没有任何配置更改就可以正常运行。我希望你抓住了这个:我根本没有改变模拟器配置,但有时它会运行,有时会失败。

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

答案 4 :(得分:30)

使用512 Mb代替。上述方法均不适合我。

答案 5 :(得分:17)

看起来有一千个不同的修复程序......以上都没有为我工作,但是有效的方法是从命令行模拟器-arm.exe @ AVD-NAME启动AVD

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

答案 6 :(得分:14)

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

希望有所帮助。

答案 7 :(得分:13)

我通过更改设备屏幕尺寸来解决此问题。

我发现如果你指定的是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] hw.camera.front = none

[2013-01-11 14:44:01 - SDK Manager] hw.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

答案 8 :(得分:6)

我仔细检查了这个帖子中提到的所有其他解决方案,但没有发现任何有效的解决方案,所以我对它进行了一些调整。由于某些原因,我的API版本失败了。我把它改回了香草,不再崩溃了。

我必须有其他一些问题,但也许这会对某人有所帮助......

答案 9 :(得分:6)

查看官方issue 33930。有人指出,它可能与模拟器启动期间启动OpenGL有关。其他人在使用WXGA800皮肤时只写崩溃并建议手动将分辨率设置为800x1280。

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

答案 10 :(得分:5)

我的机器中有16 GB和3.4 Ghz四核处理器。虚拟机也不允许我在1024运行它。我确实把它提升到了878MB,因为它在880时失败了同样的消息。这似乎是我可以分配给模拟器的最多ram。它仍然很慢,但我认为它优于512MB。

答案 11 :(得分:4)

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

答案 12 :(得分:4)

我通过将存储大小设置为RAM大小的2倍,并将SD存储大小与RAM大小相同来解决。

答案 13 :(得分:3)

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

答案 14 :(得分:3)

就我而言,从WVGA720到WSVGA的changin屏幕分辨率对我有用。

答案 15 :(得分:3)

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

我禁用了相机支持,我可以使用1024MB of RAM

使用Windows 64bit, Xoom (Android 3.0)

答案 16 :(得分:2)

在Windows上对我有用的是:

1)关闭Eclipse 2)运行Avd UI 3)关闭所有正在运行的进程,特别是内存很重的进程,如Chrome,explorer.exe等 4)启动模拟器 5)赢了

答案 17 :(得分:2)

确保正确安装IntelHAXM。仅通过SDK Manager下载并“安装”它是不够的。您需要从以下位置手动安装它:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

另外,请确保在BIOS中启用了英特尔虚拟技术。

按照developer.android.comIntel's installation instructions上的指南进行操作。

答案 18 :(得分:2)

您只需要编辑虚拟设备的ram,使其降低!尝试20 MB,它会工作!

答案 19 :(得分:1)

我注意到这与其他所有其他我工作正常的avd有关。我删除了它并创建了一个新的,现在它可以工作。