我正在使用 64 位 Debian,当我尝试运行它时:
$ emulator64-x86 -verbose -avd cocos2dx-emulator -gpu on -qemu -m 2047 -enable-kvm
进程挂起,停止它的唯一方法是使用 kill -9,这些是它打印的最后一行输出:
[...]
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/bios.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/lib/pc-bios/bios.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/vgabios-cirrus.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/lib/pc-bios/vgabios-cirrus.bin
如果我使用 emulator-x86,它工作正常:
$ emulator-x86 -verbose -avd cocos2dx-emulator -gpu on -qemu -m 2047 -enable-kvm
[...]
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/bios.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/lib/pc-bios/bios.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/vgabios-cirrus.bin
emulator: trying to find: /home/victor/lab/androidr16/android-sdk-linux/tools/lib/pc-bios/vgabios-cirrus.bin
emulator: autoconfig: -scale 1
emulator: Could not open file: (null)/system/build.prop: No such file or directory
emulator: sent '0012host:emulator:5555' to ADB server
[...]
我不知道发生了什么,也无法在系统日志中找到任何可能的相关错误。
有什么想法吗?
最佳答案
AOSP 中也存在类似的错误(见下文),尽管我们大多数人在使用 emulator-x86 时也会遇到相同的结果。
作为解决方法,尝试卸载 KVM 并查看模拟器是否运行。它显然会更慢,因为它没有使用你的 CPU 的 VT 扩展,但它可能会缩小问题的根源。
问题 33817:emulator-x86 + kvm 在 qemu-setup.c 中触发无限循环 https://code.google.com/p/android/issues/detail?id=33817
话又说回来,您可能只需要运行 32 位模拟器,这可能根本不是问题。
编辑:问题似乎是由从 external/qemu/audio/paaudio.c 调用的 pulseaudio 代码中的 clone() 引起的。添加 BEGIN_NOSIGALRM 守卫的补丁可在 Issue 33817 线程的第 16 帖中找到: https://code.google.com/p/android/issues/detail?id=33817#c16
关于Android emulator64-x86 在启动过程中挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19833213/