Android模拟器崩溃;“emulator-arm.exe停止响应”

4

我正在尝试编写我的第一个Android应用程序,HelloAndroid。当我尝试在模拟器上运行它时,标题中的错误就会发生。这个问题在我创建的任何AVD上都会可靠地发生,并且在运行应用程序之前启动AVD本身时也会发生。


编辑: 在真实设备上运行应用程序可以正常工作。

此外,使用-verbose选项从命令行运行模拟器会显示,在以下内容后模拟器会挂起:

emulator: Adding boot property: 'qemu.sf.fake_camera' = 'back'.

(启用或禁用相机的AVD没有影响.)


这是我用于Android开发的内容:

  • Windows 7(64位)
  • JDK 1.7.0
  • Eclipse 3.7.1(64位)
  • Android SDK / AVD Manager,r16
  • ADT插件16.0.0
  • AVD管理器

以下是我在本站和其他网站上找到的潜在解决方案,但目前均未成功:

  • 确保SDK路径中没有空格(即将SDK直接安装到C:\驱动器)
  • 重新安装Eclipse,Android SDK / AVD Manager和ADT插件
  • 运行32位版本的Eclipse
  • 确保Eclipse使用最新版本的JDK运行,方法是更改-vm路径
  • 更改AVD的分辨率
  • 删除并重新创建AVD

非常感谢您提供任何帮助。


编辑:尝试过但没有成功的额外步骤:

  • 以管理员身份运行Eclipse
  • 创建JAVA_HOME环境变量,并将值设置为JDK bin目录的路径
  • 使用JDK 1.6(用于eclipse和Windows)
  • 在没有音频(录音或播放)的情况下运行模拟器
5个回答

2

模拟器崩溃是因为无法分配内存。请按照以下步骤解决问题:

  1. 转至“窗口”->“Android虚拟设备管理器”。
  2. 在“Android虚拟设备”选项卡下选择您的虚拟模拟器。
  3. 单击“编辑”选项,将打开一个新窗口。
  4. 在“内存选项”下减少RAM内存大小。

1

以下是一些想法:

  • 你尝试以管理员身份运行Eclipse了吗(很有可能)
  • 你正确设置了PATH和JAVA_HOME*环境变量吗(不太可能)
  • 你尝试使用JDK 1.6了吗(很有可能)
  • 关闭模拟器并重新运行它(很有可能)
  • 正如@Rahul建议的那样,你可以尝试将Android安装在一个无空格的文件夹中,例如(C:\Program Files Try C:)(很有可能)

你可能想看看我之前遇到的问题,并在我的博客上写了一篇文章。虽然是用西班牙语写的,但基本上它是一个两步骤的过程:

JAVA_HOME应该是Android安装的路径,例如C:\Program Files\AndroidSDK\

关闭模拟器,在你的情况下你应该终止这个进程:

 killall emulator -9

运行模拟器时不播放音频:

emulator -audio none

但是这个解决方案只适用于Linux,并且当时存在媒体问题。

有趣的讨论:

模拟器启动时冻结


为了确保,JAVA_HOME变量的正确值是什么?当我检查时,这个变量不存在,所以我创建了它并将值设置为指向JDK bin目录。 - Will
JAVA_HOME是Java文件夹所在的位置,例如C:\ Program Files \ Java或/ usr / local / jvm / java_jdk1.6 /。 - Necronet
正如我所想。不幸的是,这也没有解决问题。还是谢谢! - Will
你能尝试以管理员身份运行该命令吗?但是你的问题似乎是一个bug。你可以投票支持修复它... http://code.google.com/p/android/issues/detail?id=21060&thanks=21060&ts=1319207835 - Necronet
请回答问题前确认您已经知道如何解决问题,不要在不确定哪个方案可行的情况下发布替代解决方案。 - dns
显示剩余6条评论

1
我建议你按照Necronet和Yury所说的去尝试。除此之外,确保你没有将Android安装在C:/Program Files中,而是直接安装在C:/中。

谢谢!我在Android开发中遇到了一个奇怪的问题,然后进行了一些实验,最终发现这个问题本身就是解决方案。 - Ghost
是的,这似乎是一个常见的问题。这是我尝试的第一件事之一;不幸的是,在我的情况下似乎不是答案。 - Will
请直接回答问题,如果你已经知道如何解决问题。不要仅仅发表“建议”,这对提问者没有帮助。 - dns
@dns:提问者对我的“建议”没有任何异议,其他人也是如此。这个问题已经有一个被接受的答案了。你不认为在一个1.5年前的问题和答案上发表评论现在已经没有任何意义了吗? - Ghost

0

可能是RAM错误。请按照以下步骤操作:

  1. 关闭模拟器
  2. 进入AVD文件夹(例如:C:\Users\username.android\avd\phone.avd)
  3. 打开config.ini文件

    将disk.dataPartition.size从M修改为MB,如果其值为512M,则改为512MB

    同样地,将hw.ramSize从512M修改为512MB

    如果您有存储SD卡,则还需将sdcard.size从10M修改为10MB

  4. 重新启动模拟器。您需要对所有模拟器都进行此操作。

    这对我很有效。

0

我找到了问题,原来这不是一个错误。

事实证明,我有一个名为ATI Tray Tools的程序在后台运行以管理我的显卡,这导致了错误(以及其他与Android开发无关的其他程序的几个错误)。禁用此程序解决了问题。非常令人恼火和琐碎的问题...很高兴它已经解决了。

谢谢大家的建议!


这让我想起了Virtual Box 3D加速和模拟器启动时冻结的问题。http://stackoverflow.com/questions/8066123/android-emulator-freezing-on-startup - Necronet

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