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


156

我正在尝试使用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

模拟器将无法运行。(Failed to sync vcpu reg)除了HAX本身源代码外,在线上都没有提到此错误的重要部分,但是我不知道该怎么做。

任何人都可以建议如何克服此错误吗?我真的需要使此工作正常进行,因为在设备和默认仿真器上的调试非常缓慢。


3
只是想指出,在问完这个问题后我就立即退出了这个项目,却再也没有机会尝试任何一种解决方案,所以我不知道正确的答案是什么!我应该选择票数最高的答案并接受吗?
约书亚·弗兰克

3
@JoshuaFrank:不,就是这样。可悲的是。

Answers:


372

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


5
这也正是我的问题和解决方案。谢谢!
Heath Borders 2014年

72
甚至在没有为我运行任何VM的情况下打开了virtualbox
David SantiagoTuriño2014年

7
在Mac上有此问题。关闭VBox后,它开始工作。
0x8BADF00D

6
正是我的问题,忘记了我正在运行VirtualBox VM
Bobby

32
我不得不停止所有mu docker-machine stop <machine>
docker

67

我运行了virtualbox。终止虚拟机允许模拟器运行。


6
谢谢,永远都不会想到这一点。有一个无业游民的盒子。
本·凯恩2015年

4
同样在这里,docker-machine(boot2docker / virtualbox)正在运行。
tvial

只是另一个确认。我停止了我的虚拟盒子实例,然后我的模拟器立即启动。仅供参考,我的虚拟设备正在使用CPU / ABI = x86,并且我在Macbook Pro上运行。
guyland123

3
这对我来说确实是一个问题。.我正在运行一个php应用程序,该应用程序在我的macbook上的虚拟框中提供了api,但我无法开发需要连接到该api的android应用程序...我想我需要部署php一些应用程序服务器上,并上开发,很好哦
托马什Tibenský

这有效,我的virtualbox在后台运行,现在我真的希望它们都可以工作
Irfan Ahmad

61

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

docker-machine stop default

假设您的docker计算机被称为default。如果要检查名称,请使用 docker-machine ls

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


哇,这是给我的。疯。您是如何知道的?
君士坦丁

1
在google上研究问题:-)并为其添加更多解释

如果您使用的是Mac,并且Docker应用程序正在任务栏上运行,即使docker-machine ls没有任何帮助,也请关闭它
Theodoros80

14

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

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

<Android SDK> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

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

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


14

如其他答案所述,请确保在Mac中没有VirtualBox和docker服务正在运行以下命令。(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

13
  1. 停止GENYMOTION(如果正在运行任何实例,请打开VirtualBox实例,将其停止)。
  2. 打开AndroidStudio->运行AVD Manager->运行AndroidStudio虚拟设备。

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


或也停止
docker

9

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

通常,同时运行多个不同类型的虚拟机不是问题。但是,如果其中之一崩溃,行为异常或只是决定成为猪,HAX可能会发现它无法将一个连贯的虚拟机放在一起,因为它无法自行同步虚拟CPU上下文。这就像尝试在没有CPU的情况下运行一台真实的计算机一样。

最重要的是,打开了任务管理器,可以杀死不需要的东西,看起来好像它们在占用虚拟机资源。在最坏的情况下,几乎可以肯定重新启动可以解决该问题。


5

快速步骤:

  1. 停止所有VirtualBox虚拟机(即无所事事的暂停),然后退出VirtualBox。
  2. 所有docker-machines也应该停止。退出Docker。

5

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


4

我遇到了同样的错误。我猜有多种原因导致此错误,但就我而言,这是由于名为“ .NCG”的服务所致。该服务是Inka Entworks的Network Content Guard,似乎是某种DRM解决方案。卸载后,仿真器可以使用HAX正常运行。


1
我没有该软件,但是它是其他相似程序的很好的线索。您究竟是怎么发现这是问题所在?
约书亚·弗兰克

4

就我而言,这是由于在AVD的设置中将网络摄像头选为“前置摄像头”而导致的。将其设置为“仿真”对我来说解决了这个问题。


4

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


3

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

您可以尝试的事情:

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

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


我会尝试一下并报告。谢谢!
约书亚·弗兰克

对我来说有趣的是启用GPU仿真的解决方案。
2015年

3

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

AVD设置


2
是的-我也一样 在AVD的config.ini中(旧的?),该属性设置为:hw.gpu.enabled = no。将其更改为是后-一切正常:)
icyerasor

3

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

boot2docker down


2

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


2

是的,我有虚拟盒子正在运行,并且遇到此错误,将其关闭可修复该错误。


2

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


确实,我已经在运行vbox。当我关闭时,模拟器将再次开始工作。
里卡多


2

是的,必须停止VirtualBox VM。我还必须停止Docker for Mac。错误消息仅提到VirtualBox,直到我意识到Docker for Mac运行xhyve之前,这使我有些困惑。


1

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


3
似乎CPU节流对此错误不负责。如果VirtualBox VM当前正在运行,则出现此错误。
Johannes Ewald

1

我认为造成此故障的原因可能有多种。就我而言,由于我安装了Google输入法软件,因此出现了“无法同步vcpu reg”。这是正常工作之前的唯一更改。因此,在卸载Google Input软件后,它已恢复。只是一点参考,尽管我也不敢相信这种解决方案很长时间。


1

我运行了Windows Virtual PC(当然是在Windows上)。关闭电源后,模拟器运行正常。

希望这可以帮助。


1

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


这为我解决了。只需切换到ARM。谢谢!
rhand



1

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

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

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


1

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


0

最后,我找到了这个问题的答案。我有完全一样的问题,并且已经完全解决。

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

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

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

祝好运!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.