关于android:无法分配内存:8

Failed to allocate memory: 8

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

Failed to allocate memory: 8

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

并且模拟器不想启动。

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


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


参考Android:未能在接受的答案下分配内存及其第一条评论,将"1024"更改为"1024MB"对我有帮助。可悲,但有效。


就我而言:

  • 使用内置的WXGA720来模拟720p设备,总是会出现此错误
  • 手动将AVD分辨率设置为720 x 1280,适合我

希望它有所帮助?


你在这里和其他地方读到的其他内容都是纯粹的猜想。修复此问题的唯一可靠方法是投票支持此错误报告。

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

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


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


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

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


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

希望有所帮助。


我通过更改设备屏幕大小来克服此问题。

我发现,如果你指定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


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

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


我经历了这个线程中提到的所有其他解决方案,并没有找到任何有效的解决方案,所以我对它进行了一些调整。由于某些原因,我的API版本失败了。我把它改回了香草,不再崩溃了。

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


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


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


我解决了存储大小为RAM大小的2倍,并将SD存储大小与RAM大小相同。


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


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

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

使用Windows 64bit, Xoom (Android 3.0)


在我的情况下,从WVGA720到WSVGA的changin屏幕分辨率对我有用。


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


在Windows上对我有用的是:

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


确保正确安装IntelHAXM。仅通过SDK Manager下载并"安装"它是不够的。您需要手动安装它:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

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

按照developer.android.com上的指南或英特尔的安装说明进行操作。


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