159

我正在尝试使用适用于 Windows 的 Intel 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

并且模拟器不会运行。除了在HAX 本身的源代码中,(Failed to sync vcpu reg)在线任何地方都没有提到这个错误的重要部分,但我不知道如何理解这一点。

谁能建议如何克服这个错误?我真的需要让它工作,因为在设备和默认模拟器中调试非常慢。

4

34 回答 34

372

确保您没有运行任何虚拟机。就我而言,我运行了导致此错误的 genymotion。

于 2013-08-23T14:07:14.370 回答
67

我运行了virtualbox。杀死允许的虚拟机允许模拟器运行。

于 2015-09-08T23:45:18.393 回答
61

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

docker-machine stop default

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

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

于 2016-04-21T00:44:01.650 回答
15

我有这个问题。对我来说,它是 HAXM 版本。

当您通过 SDK Manager 获得新版本的 HAMX 时,它会告诉您它已安装。它不是。您必须转到此文件夹:

<Android SDK>\extras\intel\Hardware_Accelerated_Execution_Manager\

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

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

于 2015-07-01T04:52:35.620 回答
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

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

launchctl stop org.virtualbox.app.VirtualBox.948
launchctl stop com.docker.docker.2032
于 2016-12-27T03:52:14.107 回答
13
  1. 停止 GENYMOTION(如果有任何实例正在运行,则打开 VirtualBox 实例,停止它)。
  2. 打开 AndroidStudio -> 运行 AVD Manager-> 运行 AndroidStudio 虚拟设备。

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

于 2015-11-29T13:59:32.290 回答
10

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

通常,同时运行多个不同种类的虚拟机是没有问题的。但是,如果其中一个崩溃,或者行为不端,或者只是决定成为一头猪,HAX 可能会发现它无法组合一个一致的虚拟机,因为它无法为自己同步虚拟 CPU 上下文。这就像试图在没有 CPU 的情况下运行真机一样。

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

于 2013-10-03T22:20:05.740 回答
6

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

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

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

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

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

完成此操作后,我能够再次使用 Android Emulator :)

于 2020-04-30T12:46:32.667 回答
5

快速步骤:

  1. 停止所有 VirtualBox 虚拟机(即 vagrant halt),退出 VirtualBox。
  2. 所有 docker-machines 也应该停止。退出 Docker。
于 2016-12-10T23:56:40.147 回答
5

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

于 2017-02-23T10:27:09.410 回答
4

我遇到了同样的错误。我猜这个错误有多种原因,但就我而言,这是因为一个名为“.NCG”的服务。该服务是 Inka Entworks 的 Network Content Guard,似乎是某种类型的 DRM 解决方案。卸载后,模拟器使用 HAX 运行良好。

于 2013-06-23T08:10:39.430 回答
4

就我而言,事实证明这个问题是由于在 AVD 的设置中将网络摄像头选为“前置摄像头”造成的。将其设置为“仿真”为我解决了这个问题。

于 2013-09-04T08:18:09.580 回答
4

我遇到了这个问题,因为我的虚拟机上运行着 Ubuntu。当我关闭我的虚拟盒子时,我没有遇到这个问题。

于 2015-11-04T12:28:57.950 回答
3

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

你可以尝试的事情:

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

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

于 2013-06-10T13:07:45.447 回答
3

这一直失败,直到我将其更改为 [x] 使用主机 GPU,如图所示。

AVD 设置

于 2015-06-14T03:16:15.337 回答
3

我正在运行 boot2docker vm,就解决了这个问题。

boot2docker down

于 2017-03-08T05:25:47.030 回答
2

我在Mac上遇到了这个问题。我不认为我在运行虚拟机(我有 vbox,但它没有运行)。我重新启动了计算机,在启动任何其他应用程序之前,我尝试了模拟器,它工作正常。

于 2015-03-26T03:30:34.460 回答
2

确保您没有运行任何虚拟机。就我而言,我运行了导致此错误的 genymotion。当我杀死 genymotion 的进程并杀死所有与 Oracle VM VirtualBox 相关的进程时,它由 wangshiming 工作,不要感谢我

于 2013-11-21T06:06:40.080 回答
2

是的,我运行了虚拟盒并收到此错误,将其关闭可修复错误。

于 2015-01-12T18:20:42.067 回答
2

这是 VirtualBox 票 - https://www.virtualbox.org/ticket/14294

于 2015-12-23T18:25:22.217 回答
2

是的,VirtualBox 虚拟机必须停止。我还不得不停止 Docker for Mac。错误消息只提到了 VirtualBox,这让我有点困惑,直到我意识到 Docker for Mac 正在运行 xhyve。

于 2016-12-02T03:56:10.503 回答
2

通过将 Windows 中的当前 Java 版本从 Java 8 x64 更改为 Java 7 x86 来解决此问题。

于 2016-01-27T15:57:09.273 回答
1

如果您的 CPU 支持节流(如 Intel 的SpeedStep),请尝试在 BIOS 中禁用该功能。这是一种快速修复,但至少它有效。

于 2013-06-17T09:45:49.790 回答
1

我运行了Windows Virtual PC(当然是在 Windows 上)。一旦我关闭,模拟器就很好了。

希望这可以帮助。

于 2013-12-18T18:22:56.397 回答
1

我想一定是多种原因导致了这个失败。就我而言,由于我安装了谷歌输入法软件,出现了“Failed to sync vcpu reg”。这是正常工作之前唯一的变化。所以,卸载谷歌输入软件后,它就恢复了。只是一点参考,虽然我也不敢相信这个解决方案很长一段时间。

于 2013-09-26T15:30:00.243 回答
1

对我来说,答案是Enable keyboard input在虚拟设备的高级设置下设置为 true。

这是我在设备上更改的第一个选项,因此根据上面的大量答案,更改选项的行为也有可能修复错误。

注意:我之前已经确认没有 VM 正在运行。

于 2016-01-17T02:26:17.063 回答
1

我试图启动 Gingerbread 2.3.3 x86 模拟器,但它不会启动。从 x86 更改为 arm 使问题消失了。

于 2015-07-15T12:58:26.063 回答
1

对我来说,在 MacOs Yosemite 上使用 adv 的唯一方法是将处理器设置为ARM(设备的本机 CPU - 标准 4" Nexus)。

于 2015-10-17T15:48:42.647 回答
1

如果您正在运行任何虚拟机,请将它们挂起并重试。

于 2016-01-14T17:55:30.077 回答
0

对我来说,这是在本地运行的 google appengine。

于 2014-07-06T22:38:32.873 回答
0

最后,我找到了这个问题的答案。我遇到了完全相同的问题,并且完全解决了。

虚拟设备或网络摄像头很少是导致问题的原因。

只需安装主板芯片组驱动程序。

我建议您使用 3DP 芯片组自动安装程序。

祝你好运!

于 2014-05-29T09:53:44.493 回答
0

似乎在您系统上的环境变量中(对我而言,在 Window 7 上),将“路径”系统变量(不是用户变量)设置为“ sdk_install_location \tools\lib”,例如:“C:\Users\android_sdk\tools\ lib”为我解决了这个问题。

查看此网页上的“提示和技巧”部分:https ://software.intel.com/en-us/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-windows了解更多信息信息(如果链接失效/不起作用,只需谷歌“英特尔 HAX 安装说明”)。

于 2015-05-01T21:53:31.360 回答
0

对于本地环境使用 VM(例如 Homestead)的开发人员,只需在启动 Android 模拟器之前停止 VM。之后重新启动它将允许两者并行运行,但您可能会遇到严重的性能问题。

于 2015-06-23T20:07:10.017 回答
-1

我减少了分配的 VM 内存的大小,它似乎已经修复了它。

于 2014-12-18T01:09:38.937 回答