Android emulator Android Studio emulator:错误:检测到挂起的线程QEMU2主循环
我在Ubuntu 16.04上使用Android Studio 3.0.1 昨天,Android Studio弹出一条消息说有一个可用的更新,我总是点击那个些。然后它通知我它已经成功地更新了仿真器 我的AVD以前工作得很好,但在更新完成后,现在当我启动它时,它在emulator窗口中显示一个黑屏15秒,然后崩溃,并显示以下错误消息:Android emulator Android Studio emulator:错误:检测到挂起的线程QEMU2主循环,android-emulator,qemu,Android Emulator,Qemu,我在Ubuntu 16.04上使用Android Studio 3.0.1 昨天,Android Studio弹出一条消息说有一个可用的更新,我总是点击那个些。然后它通知我它已经成功地更新了仿真器 我的AVD以前工作得很好,但在更新完成后,现在当我启动它时,它在emulator窗口中显示一个黑屏15秒,然后崩溃,并显示以下错误消息: ERROR: detected a hanging thread 'QEMU2 main loop'. No response for 15000 ms Proce
ERROR: detected a hanging thread 'QEMU2 main loop'. No response for 15000 ms
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
ADB rejected shell command (getprop): closed
我在描述类似仿真器问题的所有线程中尝试了建议的解决方案。(我验证了模拟器仍然是通过SDK管理器安装的,我尝试在AVD的软件和硬件图形设置之间切换,我尝试用更新版本6.0.24替换libstdc++,我尝试将ln-sf my/usr/lib..libstdc++6.0.21放入SDK模拟器lib64/libstdc++文件夹,我甚至下载了Android Studio。)并且用新下载的SDK运行了一个新的SDK文件夹,我试着用不同的体系结构(arm)和不同的API级别(24、27)创建新的AVD,我试着重新启动ADB,甚至重新启动计算机。没有任何帮助
我的SDK工具菜单没有emulator accelerator(HAXM)的条目,尽管我的电脑有一个Intel CPU:我不应该改变这个,因为我的AVD昨天才工作!什么坏了
是什么导致“QEMU2主循环”挂起,我如何修复它?我找到了一个临时解决方法-确保启用了IPv6
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
如果您看到上面的1,请编辑/etc/sysctl.conf文件并注释掉所有IPv6禁用指令:
# net.ipv6.conf.all.disable_ipv6 = 1
# net.ipv6.conf.default.disable_ipv6 = 1
# net.ipv6.conf.lo.disable_ipv6 = 1
更新日期:2018年1月5日:至少有一个用户报告说,禁用以前启用的IPv6已解决了其系统上的问题。在这种情况下,如果系统上已启用IPv6,并且仿真程序未启动,则您可能希望尝试反向执行上述步骤
在我的Ubuntu 16.04上最新更新Android SDK后,我开始遇到完全相同的问题。可执行文件没有符号,因此我不确定如何向原始开发人员指出根本原因,但以下是线程状态:
(gdb) info threads
Id Target Id Frame
1 Thread 0x7f6d20428700 (LWP 14472) 0x00000000014e8baf in ?? ()
2 Thread 0x7f6d20c29700 (LWP 14471) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
* 3 Thread 0x7f6d20c2ad00 (LWP 14470) 0x00007f6d258a27d1 in __GI_ppoll (fds=0x3842bf8, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:50
4 Thread 0x7f6d1d427700 (LWP 14479) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
5 Thread 0x7f6d1649b700 (LWP 14483) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
6 Thread 0x7f6d05fe4700 (LWP 14487) __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
7 Thread 0x7f6d16c9c700 (LWP 14482) __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
8 Thread 0x7f6d1cc26700 (LWP 14480) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
9 Thread 0x7f6d1eda9700 (LWP 14478) 0x00007f6d258a270d in poll () at ../sysdeps/unix/syscall-template.S:84
10 Thread 0x7f6d067e5700 (LWP 14486) 0x00007f6d280107cd in connect () at ../sysdeps/unix/syscall-template.S:84
11 Thread 0x7f6d15c9a700 (LWP 14484) 0x00007f6d258a27d1 in __GI_ppoll (fds=0x7f6d10000aa0, nfds=5, timeout=<optimized out>, sigmask=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:50
12 Thread 0x7f6cff7fe700 (LWP 14489) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
13 Thread 0x7f6cfffff700 (LWP 14488) 0x00007f6d258a270d in poll () at ../sysdeps/unix/syscall-template.S:84
14 Thread 0x7f6cfeffd700 (LWP 14490) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
15 Thread 0x7f6cfe7fc700 (LWP 14492) 0x00007f6d280107cd in connect () at ../sysdeps/unix/syscall-template.S:84
16 Thread 0x7f6cfdffb700 (LWP 14493) 0x00007f6d258a27d1 in __GI_ppoll (fds=0x7f6c78012818, nfds=3, timeout=<optimized out>, sigmask=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:50
17 Thread 0x7f6c93dfe700 (LWP 14498) pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
我在ubuntu 16.04和android studio 3.0.1中遇到了完全相同的问题 用谷歌搜索此错误消息后:
ERROR: detected a hanging thread 'QEMU2 main loop'. No response for 15000 ms
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
ADB rejected shell command (getprop): closed
我在中找到一个讨论错误的用户
一个简单的解决方案是:在AS>中单击AVD管理器后,单击图形下拉菜单中的“用铅笔图标编辑此AVD>”选择软件
此模式可能会导致模拟器速度降低,但可能是该问题的临时解决方案。在工具->AVD->编辑->高级设置中。选择快速启动而不是冷启动我正在Windows中运行安卓Studio 3.01 我不知道这是否与此有关。我收到了相同的错误消息:
ERROR: detected a hanging thread 'QEMU2 main loop'. No response for 15000 ms
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
ADB rejected shell command (getprop): closed
Android Studio emulator:错误:检测到挂起的线程QEMU2主循环
我尝试了一下这句话。以下是我得到的线索:
进程:com.abc.abc,PID:4620java.lang.RuntimeException:无法启动活动组件信息{com.abc.abc/com.abc.abc.CheckRegistration}:android.view.InflateException:二进制XML文件行#0:二进制XML文件行#0: 必须提供布局宽度属性 在上面的消息中,我用abc替换了我的域名 我将版面宽度从“包裹内容”更改为特定宽度123dp。这一更改解决了我的问题。放松伙计们 实际上可能会出现挂起状态
- 在模拟器启动时
- 奔跑中
- 更新包
- 将项目导入或打开到更高版本的android studio时,如 2.4->3.0.1等 主要原因是您以前的应用程序的状态与以前的android studio库和包一起保存,因此解决此错误很容易,即
emulator,它会工作得很好。这就是我的工作原理:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
$ sudo sysctl net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.disable_ipv6 = 0
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
我已经进入工具->AVD管理器->编辑(特定模拟器)>显示高级设置
然后在模拟性能部分,我选择了快速启动,我将其改为冷启动,一切都开始正常工作
希望这有帮助。在macOS上启用/禁用ipv6协议也可以,如果
关闭
选项没有出现在配置ipv6下拉列表中(如macOS 10.14),您可以在终端中执行下一个命令:
networksetup -setv6off Ethernet && networksetup -setv6off Wi-Fi
要启用,只需在配置IPv6下拉列表中选择上一个选中的选项,或执行此其他命令:
networksetup -setv6automatic Wi-Fi && networksetup -setv6automatic Ethernet
关于:
要将disable_ipv6的值从1设置为0,请执行以下操作:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
$ sudo sysctl net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.disable_ipv6 = 0
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
转到工具=>AVD管理器选择要打开的虚拟设备,按画笔图标(编辑此AVD) 选择显示高级设置
选择启动选项:冷启动我已解决此问题。 只要在SDK管理器中检查是否有可用的更新。如果是,则更新AVD管理器和SDK工具。
然后开始AVD。它将像以前一样工作。直到2020年12月1日,我们在一台28核的机器上运行了27个模拟器,当时它们突然开始缓慢运行,平均负载降低了1.5倍-2倍,并且出现了这些QEMU消息,偶尔几天会恢复正常。另一个团队也在他们的模拟器上运行Android 10,在他们完全无关的系统上也发现了同样的性能问题。Android 11和Pie不受影响 我们的仿真器容器使用标准的avdmanager创建的AVD和一个机器快照制作成docker映像,每个映像一个仿真器,我们唤醒了几个