如何修复"无法同步vcpu reg"错误?

Jos*_*ank 156 android intel android-emulator

我正在尝试使用适用于Windows的英特尔HAX x86仿真器(8,如果这很重要).我安装了所有内容并为Android版本创建了一个AVD,一切看起来都正确,但是当我运行它时,我得到了这个输出:

Starting emulator for AVD 'x86_QVGA_Level10'
emulator: device fd:1044
HAX is working and emulator runs in fast virt mode
emulator: Failed to sync vcpu reg
emulator: Failed to sync HAX vcpu context
Run Code Online (Sandbox Code Playgroud)

并且模拟器不会运行.(Failed to sync vcpu reg)除了HAX本身源代码之外,任何地方都没有提到此错误的重要部分,但我无法弄清楚如何理解这一点.

任何人都可以建议如何通过这个错误?我真的需要让它工作,因为在设备和默认模拟器上进行调试非常缓慢.

JP2*_*014 372

确保没有运行任何虚拟机.在我的情况下,我运行genymotion导致此错误.

  • 甚至在没有任何VM运行的情况下打开虚拟机 (72认同)
  • 我不得不停止所有mu docker机器:(`docker-machine stop <machine>` (32认同)
  • 在Mac上遇到此问题.关闭VBox后它就开始工作了. (7认同)
  • 完全是我的问题,忘了我运行了VirtualBox VM (6认同)
  • 这也是我的问题和解决方案.谢谢! (5认同)
  • 我有Docker(在Mac上)运行.停止它固定的东西给我. (4认同)
  • 是的,我也在运行Genymotion (3认同)
  • 我也忘了我玩Docker并运行了一个VBox VM.我启动了VirtualBox,停止了VM并仍然出错了!我不得不完全退出VirtualBox来启动我的模拟器. (3认同)
  • 当我使用boot2docker停止Virtualbox时工作. (2认同)
  • 当您使用Docker时,也可能发生在后台运行的Virtualbox实例的检查. (2认同)

Jer*_*ony 67

我有虚拟机运行.杀死允许的VM允许模拟器运行.

  • 谢谢,从来没有想过这个.有一个Vagrant盒子. (6认同)
  • 同样,docker-machine(boot2docker/virtualbox)正在运行. (4认同)
  • 这对我来说真的是一个问题..我正在运行一个php应用程序,它在我的macbook上提供虚拟框中的api,我无法开发需要连接到那个api的android应用程序...我想我需要部署php在一些服务器上的应用程序并开发,哦,好吧 (3认同)

小智 61

如果您正在运行Docker,则必须关闭虚拟机

docker-machine stop default

这假设您的docker机器被调用default.如果要检查名称使用 docker-machine ls

更简单的解决方案; 打开virtuabox并停止vm :-)


小智 14

我有这个问题.对我来说这是HAXM版本.

当您通过SDK Manager获得新版本的HAMX时,它会告诉您它已安装.它不是.你必须去这个文件夹:

<Android SDK>\extras\intel\Hardware_Accelerated_Execution_Manager \

并手动运行intelhaxm-android.exe.就我而言,我有1.0.6并升级到1.1.

我认为导致错误的原因是我更新的SDK的其他部分需要1.1.

  • 类似的问题,但相反:我按照 Android Studio 的建议手动安装了 HAXM v7.8.0,因为它无法自动安装,但 v7.8.0 放弃了对 Android Studio 使用的较旧 qemu 版本的支持,因此我必须卸载并降级到 v7。 6.5 通过 `Android Studio &gt; Tools &gt; SDK Manager &gt; SDK Tools &gt; Intel x86 Emulator Accelerator (HAXM installer)` 安装 (3认同)
  • 与@gaborous提到的类似,我通过安装较旧的HAXM版本解决了我的问题 - https://github.com/intel/haxm/releases/download/v7.7.1/haxm-windows_v7_7_1.zip (2认同)
  • 谢谢@gaborous。我卸载了 HAXM 并再次安装,现在它可以工作了! (2认同)

pra*_*upd 14

正如其他答案所述,请确保没有VirtualBox和docker服务在mac中运行以下命令.(systemctl在Linux中)

$ launchctl list | grep 'VirtualBox\|docker'
-       0   com.docker.helper
640     0   com.docker.docker.2032
31736   0   org.virtualbox.app.VirtualBox.948
Run Code Online (Sandbox Code Playgroud)

如果是这样,杀死VBoxdocker服务.

launchctl stop org.virtualbox.app.VirtualBox.948
launchctl stop com.docker.docker.2032
Run Code Online (Sandbox Code Playgroud)


raj*_*raj 14

您是否正在运行 HP SureClick?我在惠普笔记本电脑上遇到了同样的问题,直到我禁用它。

HP SureClick是一种安全保护程序,可在微型虚拟机中运行“不安全”程序。它在您的计算机上也可能被称为HP Wolf Security,这是它的新名称,尽管在幕后(例如文件夹、对话框等)它仍然被称为 SureClick。它可能有一些在任务管理器中可见的进程,其前缀为“Br”,代表 Bromium。

与其他答案类似,它不能与 Android 模拟器同时运行,因为它基本上是一个虚拟机。

以下是禁用它的一些步骤(可能不是所有步骤都需要,但这对我有用):

  1. 右键单击系统托盘中的“HP SureClick”或“HP Wolf”,然后选择“禁用威胁遏制”。它会弹出一个对话框询问原因(可选),所以只需单击“确定”
  2. 再次右键单击该图标并选择“禁用恶意软件防护”
  3. 单击“开始”,输入“服务”,打开“服务”窗口,然后右键单击每个“HP SureClick”服务将其设置为禁用 -> 属性 -> 将启动类型更改为禁用(对我来说有 3 个这样的服务)
  4. 重新启动计算机

完成此操作后,我可以再次使用 Android 模拟器了:)


MAN*_*HAK 13

  1. 停止GENYMOTION(如果有任何实例正在运行,则打开VirtualBox实例,停止它).
  2. 打开AndroidStudio - >运行AVD Manager->运行AndroidStudio虚拟设备.

最新的Android模拟器无法与GENYMOTION并行运行


小智 9

"vcpu reg"是存在于许多处理器上的"虚拟CPU寄存器",这些处理器具有多核,超线程或其他功能,使更高层能够相信在没有CPU时存在多个CPU - 例如今天的x86s.没有理由详细说明 - 您可以想象,HAX提供的硬件虚拟化需要获得连贯的单一"虚拟CPU上下文".

通常,同时运行各种类型的多个虚拟机不是问题.但是,如果其中一个崩溃,或行为不端,或者只是决定要养猪,HAX可能会发现它无法将一个连贯的虚拟机组合在一起,因为它无法为自身同步虚拟CPU上下文.这就像尝试运行没有CPU的真机.

底线是打开任务管理器并杀死你不需要的东西,看起来他们可能正在持有虚拟机资源.在最坏的情况下,重启几乎肯定会解决问题.


小智 5

快速步骤:

  1. 停止所有VirtualBox虚拟机(即vagrant halt),退出VirtualBox.
  2. 所有的docker-machines也应该停止.退出Docker.


Ruk*_*ias 5

当我试图在MacOS机器上运行VirtualBox和Android模拟器时,这也发生在我身上.正如其他人上面提到的那样,目前不可能在MacOS中运行这两者(即基于VirtualBox和X86 -Intel的模拟器)而不确定其他平台.如果我们需要同时运行,我们可以选择基于ARM的仿真器.(基于臂的仿真器通常很慢)


thi*_*ijs 3

我在 Windows 8 安装中遇到了同样的错误。

你可以尝试的事情:

  • 降低模拟设备的内存量(和/或关闭其他应用程序)
  • 禁用 GPU 模拟
  • 删除直通网络摄像头

对我来说,当我尝试将物理网络摄像头附加到模拟的 Android 实例时,就会发生错误。