安卓模拟器:即使有8MB RAM,仍然无法分配内存:8

6

我正在尝试启动一个模拟器,但一直提示错误内存分配失败: 8

有一些解决方案,例如将RAM从1024设置为512,但是即使将其设置为8,它仍然会崩溃并显示此错误!

我该怎么办?

设置截图:

enter image description here

这里是Windows给出的已崩溃的emulator-arm.exe的错误信息:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: emulator-arm.exe
  Application Version:  0.0.0.0
  Application Timestamp:    4fe779fb
  Fault Module Name:    emulator-arm.exe
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   4fe779fb
  Exception Code:   40000015
  Exception Offset: 0014428e
  OS Version:   6.1.7600.2.0.0.768.3
  Locale ID:    1043
  Additional Information 1: ea2b
  Additional Information 2: ea2b4716fbf9f89aacc15214fb1537bb
  Additional Information 3: 8d2f
  Additional Information 4: 8d2f162ccf8522e475fc4fbe036a6efa

我上一次检查模拟器工作正常是在更新ADT 20之前,删除所有旧的AVD之前。


如果您使用的是Windows操作系统,请尝试以管理员身份运行Eclipse(“以管理员身份运行”)。 - Uku Loskit
如果您写512,它将失败。512MB将对所有可能的值执行类似操作。 - Muhammad Irfan
5个回答

8

我也遇到过这样的问题,唯一能解决的办法是将其设置为256、512或1024。我不知道为什么随意设置其他值都行不通。


当然,我也尝试了那些值,但也没有起作用。 - nhaarman
4
当您将皮肤更改为默认值时,会怎样? - EGHDK
这好像神奇地起作用了。你有什么想法为什么会这样? - nhaarman
@Niek 我不明白他所说的“skin”默认值是什么意思。是皮肤(skin)?还是主题(Theme)? - NT_
1
如果您的需求是测试Nexus 7分辨率,将其设置为默认值并不能解决问题。 - Netverse
显示剩余3条评论

4

您需要访问位于以下位置的AVD配置文件:

C:\Users\Furqan\.android\avd\Gingerbread.avd

这里我的用户名是Furqan,Gingerbread.avd是模拟器设备的名称。

有一个config.ini文件,在那里,你可以更改ramsize或者vm.heapSize=128 hw.ramSize=2048mb

确保ramsize以MB为单位,并且你可以轻松地从这里更改模拟器中的任何内容。

     avd.ini.encoding=ISO-8859-1
     hw.sdCard=no
     hw.device.manufacturer=Google
     hw.mainKeys=yes
     hw.lcd.density=320
     hw.accelerometer=yes
     hw.dPad=yes
     hw.cpu.arch=arm
     skin.name=720x1280
     abi.type=armeabi
     hw.device.hash=-708107041
     hw.trackBall=no
     hw.device.name=Galaxy Nexus
     hw.camera.back=emulated
     hw.sensors.proximity=yes
     hw.battery=yes
     disk.dataPartition.size=200M
     image.sysdir.1=platforms\android-10\images\
     hw.audioInput=yes
     hw.sensors.orientation=yes
     hw.camera.front=emulated
     hw.gps=yes
     skin.dynamic=yes
     skin.path=720x1280
     hw.keyboard=yes
     vm.heapSize=128
     hw.ramSize=2048mb

注意:hw.ramSize要使用小写的mb,因为大写无法正常工作。

1

在Windows下,无论PC中有多少RAM,似乎将模拟器设置为约900MB是它所能处理的最大值。对于我来说,即使有6GB的RAM和Windows 7 x64,1024MB总是失败。

另一个关键点是,在设备RAM大小中,始终在末尾包含“MB”。如果没有它,它似乎会随机工作/崩溃,但是带有它可以可靠地工作。许多预构建的模拟器似乎会省略这个。例如,使用900MB(没有空格)。


0
如我在这里提到的:https://dev59.com/0W025IYBdhLWcg3wf2KE#14420779 我通过以“管理员”身份运行AVD来解决了这个错误,而不需要对我的模拟器设置进行任何更改。为了确保清晰,我的模拟器在RAM字段中设置为“1024”,不需要MB标记。因此,我认为这个错误与文件系统权限或缺乏权限有关。

0

解决问题的方法:

打开config.ini文件(位置:C:\USERS\ YOURUSERNAME\.android\avd),并进行如下设置。

hw.ramSize=512

hw.ramSize=512mb

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