今天起,我在2.3.3的Android平台上尝试在NetBeans中运行一个应用程序时,出现以下提示:
无法分配内存:8
此应用程序已请求Runtime以不寻常的方式终止它。 有关更多信息,请联系应用程序的支持团队。
模拟器也无法启动。
这是我第一次看到这种情况,谷歌上没有相关答案。我甚至尝试了NetBeans 6.9.1和7.0.1的两个版本,但仍然出现相同的错误。
今天起,我在2.3.3的Android平台上尝试在NetBeans中运行一个应用程序时,出现以下提示:
无法分配内存:8
此应用程序已请求Runtime以不寻常的方式终止它。 有关更多信息,请联系应用程序的支持团队。
模拟器也无法启动。
这是我第一次看到这种情况,谷歌上没有相关答案。我甚至尝试了NetBeans 6.9.1和7.0.1的两个版本,但仍然出现相同的错误。
我解决了问题,问题出在我指定的虚拟机内存大小上,原本是1024MB,现在改成了512MB,现在没问题了。不过我需要找到如何提高内存大小,512MB 不太够用,虚拟机有些卡顿。
hw.ramSize
的值增加1024的显示皮肤(GUI硬件列表中的“设备RAM大小”)。请确保选择一个具有较低值的“皮肤”,或者使用手动分辨率并从硬件列表中删除此行 - 当选择了皮肤时无法删除它。 - RedGlyph参考Android: failed to allocate memory及其被接受答案下的第一条评论,将“1024”更改为“1024MB”有所帮助。虽然可悲,但却有效。
在我的情况下:
希望能对你有所帮助~
除此之外,您在这里和其他地方读到的所有内容都是纯猜测。唯一确定解决此问题的方法是投票支持这个错误报告。
该问题与模拟器分辨率或OpenGL以及计算机内存量无关。我电脑内存有24GB,在大多数情况下使用hw.ramSize=1024
时会出现错误8,而有时不需要做任何配置更改就可以正常工作。我希望你能明白:我根本没有更改模拟器配置,但有时它运行,有时它失败。
很可能与内存碎片有关。我建议暂时减少hw.ramSize
的值作为解决措施。
可以使用512 Mb。对我来说,上述方法都不起作用。
看起来有成千上万种不同的解决方法……以上都不适用于我,但是有效的方法是通过命令行启动AVD,使用 emulator-arm.exe @AVD-NAME
如果只使用emulator.exe启动,则会出现与通过Eclipse启动时相同的错误消息。
我通过更改设备屏幕大小来解决了这个问题。
我发现,如果您指定了1024 MB的RAM,则只需在hdpi中指定设备屏幕大小,如果是512 MB RAM,则应该是mdpi或其他。
因此,我们可以明确地说,RAM大小应根据屏幕大小指定。如果在保持设备屏幕大小为mdpi的情况下指定1024 RAM大小,则会导致上述错误,即“无法分配内存:8。此应用程序已请求Runtime以异常方式终止它。请联系应用程序的支持团队获取更多信息。”
或者
按照以下方式在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
我研究了本主题中提到的所有其他解决方案,没有发现有效的方法,所以我自己尝试了一下。Google版本的API出现了故障,我将其改回原版后问题得到了解决。
可能我还有其他问题,但希望这能对别人有所帮助……