Android emulator Android Studio emulator:错误:检测到挂起的线程QEMU2主循环

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

我在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
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:4620
java.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库和包一起保存,因此解决此错误很容易,即

a) 工具->AVD->编辑->高级设置。选择快速启动而不是冷启动 (由卡梅尔回答)

b) 如果您已经选择了“快速启动”,请选择“冷启动”,然后重新启动
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映像,每个映像一个仿真器,我们唤醒了几个