关于android:如何修复“无法同步vcpu reg”错误?

How do I fix “Failed to sync vcpu reg” error?

我正在尝试使用IntelHAX86 Emulator for Windows(8,如果这很重要的话)。我安装了所有东西,并为Android版本创建了一个AVD,所有东西看起来都是正确的,但是当我运行它时,我得到了这个输出:

1
2
3
4
5
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)在网上的任何地方都没有提到,但我不知道如何理解这个问题。

有人能就如何克服这个错误提出建议吗?我真的需要让它工作,因为在设备和默认模拟器上的调试非常缓慢。


确保没有任何虚拟机在运行。在我的例子中,我运行了导致这个错误的性别关系。


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


如果你在运行Docker,你必须关闭虚拟机。

docker-machine stop default

这假设您的docker机器称为default。如果你想检查名字,用docker-machine ls

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


我有这个问题。对我来说是哈克斯版本。

当您通过sdk管理器获得一个新版本的hamx时,它会告诉您已经安装了它。不是这样。必须转到此文件夹:

\extras\intel\Hardware_Accelerated_Execution_Manager\

手动运行intelhaxm-android.exe。在我的例子中,我有1.0.6版本,并升级到1.1版本。

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


正如其他答案所提到的,确保在Mac中没有使用以下命令运行virtualbox和docker服务。(Linux中的systemctl)

1
2
3
4
$ launchctl list | grep 'VirtualBox\|docker'
-       0   com.docker.helper
640     0   com.docker.docker.2032
31736   0   org.virtualbox.app.VirtualBox.948

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

1
2
launchctl stop org.virtualbox.app.VirtualBox.948
launchctl stop com.docker.docker.2032

  • 停止genymotion(打开virtualbox实例如果任何实例正在运行,请停止它)。
  • 打开androidstudio->run avd manager->run androidstudio virtual device。
  • 最新的Android模拟器无法与genymotion并行运行


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

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

    底线是打开任务管理器,杀死那些你不需要的东西,这些东西看起来像是在保存虚拟机资源。在最坏的情况下,重启几乎肯定能解决问题。


    当我试图在MacOS机器上运行virtualbox和android模拟器时,我也遇到了这种情况。正如前面提到的,目前不可能在MacOS中同时运行(即基于virtualbox和x86的Intel模拟器),也不确定其他平台。如果我们需要同时运行这两个,我们可以选择基于ARM的模拟器。(基于ARM的模拟器通常速度较慢)


    快速步骤:

  • 停止所有virtualbox虚拟机(即vagrant halt),退出virtualbox。
  • 所有码头机器也应该停止。退出码头工人。

  • 我也犯了同样的错误。我猜这个错误有各种各样的原因,但在我的例子中,它是因为一个名为".ncg"的服务。该服务是由InkaEntworks提供的网络内容保护,似乎是某种类型的DRM解决方案。卸载后,仿真器使用HAX工作正常。


    在我的例子中,这个问题是由于在AVD的设置中将摄像头选为"前置摄像头"造成的。把它设置为"模拟"为我解决了这个问题。


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


    我的Windows8安装也有同样的错误。

    你可以尝试的事情:

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

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


    这一直失败,直到我把它改为[X]使用主机GPU,如图所示。

    AVD Set up


    我在运行boot2docker-vm,只是解决了这个问题。

    8


    确保没有任何虚拟机在运行。在我的例子中,我运行了导致这个错误的性别关系。当我杀死genymotion的进程并杀死所有与Oraclevmvirtualbox相关的进程时,它就会工作。王世明别谢我


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


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


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


    是的,我让虚拟机运行,并得到这个错误,关闭它修复了错误。


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


    通过改变Java中的Java 8 x64到Java 7 x86的Windows中的当前版本来修复这个问题。


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

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

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


    我认为造成这次失败的原因一定多种多样。在我的例子中,由于我安装了谷歌输入法软件,"未能同步vcpu-reg"出现了。这是正常工作前唯一的变化。所以,在卸载了谷歌输入软件之后,它被恢复了。只是一点参考,尽管我也不能长期相信这个解决方案。


    如果有任何虚拟机正在运行,请挂起它们,然后重试。


    我让Windows虚拟PC运行(当然是在Windows上)。我一关机,模拟器就正常了。

    希望这有帮助。


    我试图启动一个姜饼2.3.3 x86模拟器,但它无法启动。从x86改为ARM使问题消失了。


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


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


    对我来说,这是Google Appengine在本地运行。


    在您的系统环境变量中(对于我,在窗口7中),将"path"系统变量(不是用户变量)设置为"sdk-install-location oolslib",例如:"c:usersandroid-sdk oolslib"解决了这个问题。

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


    最后,我找到了这个问题的答案。我也有同样的问题,完全解决了。

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

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

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

    祝你好运!


    我减小了分配的虚拟机内存的大小,它似乎已经修复了它。