0

我为运行 Android 操作系统的 Nook 设备(来自 Barnes and Noble)添加了两个模拟器。

配置后,我尝试运行它,但在选择要运行的 AVD 后几乎立即出现此运行时错误:

[2013-01-07 16:59:15 - Emulator] Failed to allocate memory: 8
[2013-01-07 16:59:15 - Emulator] 
[2013-01-07 16:59:15 - Emulator] This application has requested the Runtime to terminate it in an unusual way.
[2013-01-07 16:59:15 - Emulator] Please contact the application's support team for more information.

有谁知道为什么会发生这种情况以及我能做些什么来解决它?

谢谢!

4

2 回答 2

1

如果您遇到问题,例如

分配内存失败:8

这通常意味着 AVD 无法获得足够的内存来完全运行。一个好的第一步是打开 ADV 管理器,并编辑您的 AVD,使其使用更少的 RAM。我的配置是 512MB,但可以理解的是,这会因机器而异,从 256MB 开始,向上处理是个好主意。

AVD 内存

如果现在仍然失败,请使用命令行/终端运行模拟器

emulator -avd -yourAVDName

并查看是否产生任何日志。如果有的话,你有一个更具体的原因来解释为什么 AVD 不工作并且可以做更多的调查。

于 2013-01-08T02:17:56.963 回答
0

发生内存问题是因为在 Windows 上,模拟器作为 32 位进程运行,因此它只获得 2GB 的用户内存,显然,这不足以同时支持大内存和大屏幕。

我通过将 emulator-arm.exe 标记为 largeaddressaware 为自己解决了这个问题,这将可用内存增加到 3GB。

这可以使用作为 Visual Studio 的一部分提供的 editbin.exe 来完成。

editbin /largeaddressaware <path-to-android-sdk>\tools\emulator-arm.exe 

该 exe 未签名,因此不会直接抱怨。尽管如此,使用它需要您自担风险,因为它只是一种 hack,如果应用程序实际上并没有准备好正确处理超过 2GB 限制的地址,它可能会带来问题。

至于我,这是我可以运行具有 WXGA800 分辨率的 android-17 (4.2) 的唯一方法,否则即使将内存减少到 256MB 也不起作用。

顺便说一句,更改很容易恢复,只需运行以下命令:

editbin /largeaddressaware:no <path-to-android-sdk>\tools\emulator-arm.exe 
于 2013-01-09T21:39:31.723 回答