![Android SDK 模拟器在运行 OS X 10.6 Snow Leopard 的 Mac 上冻结](https://linux22.com/image/1222839/Android%20SDK%20%E6%A8%A1%E6%8B%9F%E5%99%A8%E5%9C%A8%E8%BF%90%E8%A1%8C%20OS%20X%2010.6%20Snow%20Leopard%20%E7%9A%84%20Mac%20%E4%B8%8A%E5%86%BB%E7%BB%93.png)
我在两台运行 OS X 10.6.2 Snow Leopard 的 Mac 上运行 Android SDK 时都遇到了问题。这似乎是 64 位与 32 位的问题,因为 Snow Leopard 现在默认所有东西都是 64 位的,包括 Java 虚拟机。
我发现此网页关于如何让 Android 工具在 32 位 Java VM 中运行的说明,我现在能够运行 Android GUI 工具来下载 SDK 文件、创建 AVM 等。但是,当我尝试Hello World 教程当我在 Android 模拟器下运行我的应用程序时,一切都变得糟糕。
模拟器似乎启动了,但它挂起了(旋转死亡沙滩球光标),没有显示任何内容。(这只会挂起模拟器;系统的其余部分仍然正常工作。)如果我在 Windows 虚拟机中按照完全相同的步骤(减去 32 位 Java 破解)操作,一切都会正常工作。
我的 Mac Pro 塔式机和 13 英寸 MacBook Pro 都出现了这种情况。有人有什么建议吗?
答案1
前几天我在搜索时,看到终端上出现了这条消息:模拟器:警告:打开音频输入失败我之前已经多次看到过这条消息,我一直以为这是因为模拟器不支持声音或类似的东西。但我决定在某一天尝试一个实验。结果发现模拟器有一个“-noaudio”命令行选项,当我用这个选项运行它时,它成功了!!所以现在我总是用 -noaudio 选项运行模拟器,没有冻结。也没有声音支持,但至少我现在可以运行模拟器了。
现在,如果我从命令行手动调用模拟器,它就可以正常工作。那么当 Eclipse ADT 插件调用它时呢?好吧,我当时感觉很懒,不想在 ADT 插件中四处寻找它是否有“在运行模拟器时添加这些命令行标志”选项,所以我为模拟器命令制作了一个小的“包装器”shell 脚本,该脚本始终添加 -noaudio 选项。这有点不方便,但它可以工作。方法如下:(注意:$ 代表 shell 提示符,不要自己输入)
$ cd <WHERE YOU INSTALLED THE ANDROID SDK>/tools
$ mv emulator emulator.real
$ cat > emulator << EOF
#!/bin/sh
exec <WHERE YOU INSTALLED THE ANDROID SDK>/tools/emulator.real -noaudio $*
EOF
答案2
以上所有技巧确实有效。解决冻结问题的方法是-noaudio
启动模拟器时传递选项标志。
为了进一步加速模拟器的启动,可以添加另外两个标志/选项-cpu-delay
,-no-boot-anim
如下所示:
$ emulator -cpu-delay 0 -no-boot-anim -no-audio -avd <avd name>
哪里-no-audio
实际上解决了冻结问题。-no-boot-anim
禁用启动动画,<avd name>
应该用要运行的 avd 映像的名称替换
答案3
我遇到了同样的问题,只需拔下我在执行模拟器时连接的 USB 耳机即可解决
答案4
我在 MacBook Air 上的 OS X 10.8.4 上遇到了同样的问题。我最终发现该问题仅在 AVD 重新启动时触发。我目前的解决方法是每次重新启动模拟器时定义一个新的 AVD。