2011-05-11 95 views
20

我正在尝试创建一个2047 MB​​ RAM的模拟器。 当我运行它,我得到这个错误:Android:未能分配内存

[2011-02-22 14:24:14 - Emulator] 
[2011-02-22 14:24:14 - Emulator] This application has requested the Runtime to terminate it in an unusual way. 
[2011-02-22 14:24:14 - Emulator] Please contact the application's support team for more information. 
[2011-02-22 14:24:26 - Emulator] Failed to allocate memory: 8 

据我所知,降低数字将使其工作。但我宁愿用更多的内存来支持它,所以我可以测试我正在开发的一款游戏。我假设更多的RAM,它会跑得更快......

有没有人有2047 MB​​的RAM在模拟器上?如果是这样,怎么样?你使用了什么设置?你在计算机上改变了什么特别的东西吗?

使用Windows 7 64位,更新到最新的android sdk。另外我有超过8g的ram可用。我有一个设备(摩托罗拉里程碑)可供测试,但由于它是基于网络的游戏,除了我的手机之外,我还需要至少一个其他客户端(希望使用模拟器)才能运行。

+0

没听说。有2Gb RAM的Android设备,那么制作这样的模拟器有什么意义呢? – Egor 2011-05-11 20:12:20

+0

正如我上面提到的,我试图运行一个游戏,我假设分配更多内存可以让游戏运行得更快(即渲染屏幕/如果2047mb的内存不合理,我不明白为什么开发者会首先允许它。 – f20k 2011-05-11 21:01:53

+0

你可以很容易地摆脱它检查我的帖子 http://stackoverflow.com/a/14851626/1461730 – Furqan 2013-02-13 10:45:40

回答

18

解决运行更快的仿真器:

http://androiddevnotes.com/2011/03/08/1299521520000.html

运行我的游戏速度快了许多,堪比手机质量。

- 更新12年8月24日 -

我看到人们仍然来到这里,并在此答案发表评论,我已经做了更多的研究这个问题。我向你介绍我的研究结果。

注意:这些测试在我的电脑上运行,您的计算机可能会有所不同。

  1. 运行一个Android 2.2(armeabi)仿真器与住宅 '器件RAM大小'= 2048将 失败,就如同之前
  2. 运行带有属性 '器件RAM大小' 一个Android 2.2(armeabi)模拟器= 2048 MB将通过,但是如果您实际检查设备上的RAM,其大约128 MB。
    • 检查1:设置>应用程序>正在运行的服务 - 添加屏幕
    • 检查2的底部,所有的数字:运行在亚行外壳下面的命令:cat /proc/meminfo/并注意MemTotal
  3. 运行Android 4。1(armeabi-V7)与住宅“器件RAM大小”模拟器= 2048将工作,但如果你真的检查设备上的RAM及其周边512 MB
    • 检查1:设置>应用程序>运行选项卡 - 添加所有在屏幕底部的数字
    • 检查2:运行在亚行外壳下面的命令:cat /proc/meminfo/并注意MemTotal
  4. 运行的是Android 4.1(armeabi-V7)仿真器属性“设备RAM大小'= 2048 MB也可以工作,但相同的结果为3

结论

添加“MB”在一些评论指出的下方可以允许启动您的设备,但它不实际有2 GB的RAM。即使使用4.1仿真器,RAM大小也是512 MB。

建议

请使用用于测试的实际设备。

+7

实际上有两个原因,发生了。 1.你没有足够的RAM在本地机器上分配给仿真器 2.你没有把MB值写入设备内存的值域中......如果你写入512则会失败512MB会起作用等 – grobartn 2012-02-10 20:46:38

+0

@grobartn 1. As我在开篇文章中说过,我有超过8 GB的内存(准确的说是12GB)。 2.您可以在硬件属性中指定设备内存大小。说明中说整数是兆字节。即。 'MB'是不必要的 – f20k 2012-02-11 16:27:04

+0

解决了我的问题,到目前为止,我遇到过很多情况下,日食或Android搞砸了,我不相信他们说的任何东西 – grobartn 2012-02-11 23:42:11

17

我也得到这个错误。使用RAM 512

+0

如果你正在寻找真正的仿真器支持与调试等,这是最好的方法 - 只是减少你的模拟器内存​​,它会停止崩溃。在我用4gb内存的macbook air上,它运行良好,内存设置为1024,在我的戴尔笔记本电脑上运行win7,使用4gb内存 - 不得不将它降低到512 ... meh – AndrewPK 2012-04-19 22:33:48

2

我有同样的问题,但之前我得到了问题,它要求我捕捉视频源。我禁用了相机支持,我可以使用1024MB的RAM。使用Windows 64位Xoom(Android 3.0)。我希望这有助于任何有同样问题的人。

1

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

13

将我的Android ADK工具升级到20(即使我有足够的RAM)后,我也收到了此错误消息。 “设备内存大小”属性没有发生任何变化(不管是更高还是更低,还是使用“MB”)。

我的工作是在命令行运行模拟器并指定RAM数量(小于我的默认值);例如:

emulator -memory 512 -avd my_avd 
+0

这是我可以让我的avd运行的唯一方法。谢谢 – Iraklis 2012-11-25 15:20:44

+0

2天后...唯一的解决方案...谢谢 – 2013-06-20 13:27:40

+0

正确.mine也是!!!! – UVM 2015-05-25 07:14:08

12

添加在运行配置窗口中的参数 -Memory 512

参考

Run Options

+0

它在512MB中工作吗?因为我们可以添加-memory 512? – hakiko 2013-01-31 23:03:24

5

解决方案见截图的是,你去和编辑配置文件对于c盘中的用户文件夹中的.android文件夹中的那个文件夹avd RAM = 1024 MB,而不是1024

问题是MB不存在...

1

我得到“无法分配内存:8”的错误为好。我有W7-64bit和8GB的RAM。我发现通过以管理员身份运行AVD,错误消失,允许模拟器启动。

2

编辑设备设置并将RAM分配更改为较低的数字。如果是1024或更多,请将其降至512Mb或256Mb。 您可以在“编辑Android虚拟设备(AVD)”对话框的硬件部分更改它 - >设备的RAM大小

0

我安装HAXM,并得到了错误:)

3

我有经过简单的计算机重新启动帮助我同样的问题,但后来想通了。问题在于我为虚拟机指定的内存量,默认情况下为1024MB,现在我将其更改为512MB并且它可以正常工作;虽然我的电脑有8GB的RAM。

0

我不得不这样做是进入“工具 - > Android的 - > AVD管理器 - >之所以选择设备 - >编辑 - >高级设置 - >更改参数RAM 512 MB的