Comment corriger l'erreur «Échec de la synchronisation de l'enregistrement du vcpu»?


156

J'essaie d'utiliser l'émulateur Intel HAX x86 pour Windows (8, si cela compte). J'ai tout installé et créé un AVD pour la version Android, et tout semble correct, mais lorsque je l'exécute, j'obtiens cette sortie:

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

et l'émulateur ne fonctionnera pas. La partie importante de cette erreur (Failed to sync vcpu reg)n'est mentionnée nulle part en ligne, sauf dans le code source de HAX lui - même , mais je ne peux pas comprendre comment donner un sens à cela.

Quelqu'un peut-il vous conseiller sur la façon de surmonter cette erreur? J'ai vraiment besoin de faire fonctionner cela, car le débogage sur l'appareil et dans les émulateurs par défaut est extrêmement lent.


3
Je voulais juste noter que j'ai été retiré de ce projet juste après avoir posé cette question et que je n'ai jamais eu la chance d'essayer l'une de ces solutions, donc je ne sais pas quelle est la bonne réponse! Dois-je choisir la réponse la plus votée et l'accepter?
Joshua Frank

3
@JoshuaFrank: Non, laissez simplement tel quel. Tristement.
Courses de légèreté en orbite le

Réponses:


372

Assurez-vous qu'aucune machine virtuelle n'est en cours d'exécution. Dans mon cas, j'avais genymotion en cours d'exécution qui causait cette erreur.


5
C'était exactement mon problème et ma solution. Merci!
Heath Borders

72
Ou même avoir une virtualbox ouverte sans qu'aucune machine virtuelle ne fonctionne pour moi
David Santiago Turiño

7
Vous avez ce problème sur Mac. Après avoir éteint VBox, il a commencé à fonctionner.
0x8BADF00D

6
Exactement mon problème aussi, j'ai oublié que j'avais une VM VirtualBox en cours d'exécution
Bobby

32
J'ai dû arrêter toutes les machines docker mu :(docker-machine stop <machine>
jtblin

67

J'avais virtualbox en cours d'exécution. Tuer la machine virtuelle a permis à l'émulateur de s'exécuter.


6
Merci, je n'aurais jamais pensé à ça. Il y avait une boîte Vagrant.
Ben Kane

4
Idem ici, docker-machine (boot2docker / virtualbox) était en cours d'exécution.
tvial

Juste une autre confirmation. J'ai arrêté mon instance de Virtual Box et mon émulateur a démarré. Pour info, mon appareil virtuel utilisait CPU / ABI = x86, et je fonctionnais sur un macbook pro.
guyland123

3
c'est vraiment un problème pour moi .. J'exécute une application php qui fournit une api dans une boîte virtuelle sur mon macbook et je ne peux pas développer une application Android qui doit se connecter à cette api ... je suppose que je devrai déployer le php app sur un serveur et développer là-dessus, eh bien
Tomáš Tibenský

cela a fonctionné, ma boîte virtuelle fonctionnait en arrière-plan, maintenant je veux vraiment qu'ils fonctionnent tous les deux
Irfan Ahmad

61

Si vous exécutez Docker, vous devrez arrêter la machine virtuelle

docker-machine stop default

Cela suppose que votre machine docker est appelée default. Si vous souhaitez vérifier le nom, utilisez docker-machine ls

Une solution plus simple; ouvrez virtuabox et arrêtez la vm :-)


Wow c'était pour moi. Fou. Comment avez-vous compris cela?
Constantine

1
rechercher le problème sur google :-) et y ajouter un peu plus d'explications

Si vous êtes sur un Mac et que l'application Docker est en cours d'exécution dans la barre des tâches, fermez-la également, même si docker-machine ls ne vous donne rien
Theodoros80

14

J'ai eu ce problème. Pour moi, c'était la version HAXM.

Lorsque vous obtenez une nouvelle version de HAMX via le SDK Manager, il vous indique qu'elle est installée. Ce n'est pas. Vous devez aller dans ce dossier:

<SDK Android> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

et exécutez manuellement intelhaxm-android.exe . Dans mon cas, j'avais 1.0.6 et mis à niveau vers 1.1.

Je pense que ce qui a causé l'erreur en premier lieu était qu'une autre partie du SDK que j'avais mise à jour nécessitait 1.1.


14

Comme mentionné par d'autres réponses, assurez-vous qu'aucun service VirtualBox et docker n'est en cours d'exécution avec la commande suivante sous mac. ( systemctlsous Linux)

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

Si tel est le cas, supprimez le service VBoxet docker.

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

13
  1. Arrêtez GENYMOTION (ouvrez l'instance VirtualBox si une instance est en cours d'exécution, arrêtez-la).
  2. Ouvrez AndroidStudio -> Exécutez AVD Manager-> exécutez le périphérique virtuel AndroidStudio.

Les derniers émulateurs Android ne peuvent pas fonctionner en parallèle avec GENYMOTION


Ou arrêtez aussi docker
nnhthuan

9

«vcpu reg» sont des «registres de CPU virtuels» qui existent sur de nombreux processeurs qui ont des éléments tels que plusieurs cœurs, l'hyperthreading ou d'autres fonctionnalités qui permettent aux couches supérieures de croire qu'il y a plus d'un processeur présent alors qu'il n'y en a pas - comme les x86 d'aujourd'hui. Aucune raison d'entrer dans les détails - vous pouvez imaginer que l'obtention d'un "contexte CPU virtuel" unique et cohérent est nécessaire pour le type de virtualisation matérielle qu'offre HAX.

Normalement, ce n'est pas un problème d'exécuter simultanément plusieurs machines virtuelles de différentes sortes. Mais si l'un d'entre eux tombe en panne, se comporte mal, ou décide simplement d'être un porc, HAX peut trouver qu'il ne peut tout simplement pas assembler une machine virtuelle cohérente, car il ne peut pas synchroniser un contexte de processeur virtuel pour lui-même. Ce serait comme essayer de faire fonctionner une vraie machine sans CPU.

L'essentiel est d'ouvrir le gestionnaire de tâches et de tuer les choses dont vous n'avez pas besoin et qui semblent contenir des ressources de machine virtuelle. Dans le pire des cas, un redémarrage est presque certain de résoudre le problème.


5

Étapes rapides:

  1. Arrêtez toutes les machines virtuelles VirtualBox (c.-à-d. Arrêt vagrant), quittez VirtualBox.
  2. Toutes les machines docker doivent également être arrêtées. Quittez Docker.

5

Cela m'est également arrivé lorsque j'essayais d'exécuter à la fois VirtualBox et l'émulateur Android sur une machine MacOS. Comme d'autres l'ont mentionné ci-dessus actuellement, il n'est pas possible d'exécuter les deux (c'est-à-dire VirtualBox et un émulateur basé sur X86 -Intel) sous MacOS et pas sûr des autres plates-formes. Si nous devons exécuter les deux, nous pouvons choisir un émulateur basé sur ARM. (les émulateurs basés sur les bras sont normalement lents)


4

J'obtenais la même erreur. Je suppose qu'il y a plusieurs raisons à cette erreur, mais dans mon cas, c'était à cause d'un service nommé ".NCG". Le service est Network Content Guard par Inka Entworks, et semble être un type de solution DRM. Une fois désinstallé, l'émulateur fonctionnait correctement en utilisant HAX.


1
Je n'ai pas ce logiciel, mais c'est un bon indice sur d'autres programmes similaires. Comment diable avez-vous découvert que c'était le problème?
Joshua Frank

4

Dans mon cas, il s'est avéré que ce problème était causé par la sélection d'une webcam comme "Caméra frontale" dans les paramètres de l'AVD. Le régler sur "Émulé" a résolu ce problème pour moi.


4

J'ai rencontré ce problème parce que ma boîte virtuelle fonctionnait avec Ubuntu dessus. Lorsque j'ai arrêté ma boîte virtuelle, je n'ai pas rencontré ce problème.


3

J'ai eu la même erreur lors de l'installation de Windows 8.

Choses que vous pourriez essayer:

  • réduire la quantité de mémoire pour le périphérique émulé (et / ou fermer d'autres applications)
  • désactiver l'émulation GPU
  • retirer la webcam pass-through

Pour moi, l'erreur se produit lorsque j'essaie de connecter une webcam physique à l'instance Android émulée.


Je vais essayer et faire un rapport. Merci!
Joshua Frank

Drôle pour moi était la solution pour activer l'émulation GPU.
rekire le

3

Cela a continué à échouer jusqu'à ce que je le change en [x] Utiliser le GPU hôte comme indiqué sur la photo.

Configuration AVD


2
Ouais - pareil pour moi. Dans le fichier config.ini de l'AVD (ancien?), La propriété était définie sur: hw.gpu.enabled = no. après l'avoir changé en oui - tout fonctionne :)
icyerasor

3

J'exécute boot2docker vm, juste en bas, il a résolu le problème.

boot2docker down


2

Assurez-vous qu'aucune machine virtuelle n'est en cours d'exécution. Dans mon cas, j'avais genymotion en cours d'exécution qui causait cette erreur. quand je tue le processus de genymotion et que je tue tous les processus liés à Oracle VM VirtualBox, cela fonctionne par wangshiming, ne me remerciez pas


2

Oui, j'avais une boîte virtuelle en cours d'exécution et j'obtenais cette erreur, son arrêt corrigeait l'erreur.


2

J'étais sur un mac et j'ai eu ce problème. Je ne pensais pas que j'exécutais une VM (j'ai vbox mais elle ne fonctionne pas). J'ai redémarré mon ordinateur et avant de démarrer d'autres applications, j'ai essayé l'émulateur et cela fonctionne bien.


Exactement, j'avais vbox en cours d'exécution. Lorsque je me suis arrêté, l'émulateur recommence à fonctionner.
Ricardo


2

Oui, les VM VirtualBox doivent être arrêtées. J'ai également dû arrêter Docker pour Mac. Le message d'erreur ne mentionne que VirtualBox, ce qui m'a un peu dérouté jusqu'à ce que je réalise que Docker pour Mac exécute xhyve.


1

Si votre processeur prend en charge la limitation (comme le SpeedStep d'Intel ), essayez de désactiver cette fonctionnalité dans votre BIOS. C'est une sorte de correctif rapide mais au moins cela a fonctionné.


3
Il semble que la limitation du processeur ne soit pas responsable de cette erreur. L'erreur apparaît dans mon cas si une VM VirtualBox est en cours d'exécution.
Johannes Ewald

1

Je pense que plusieurs raisons doivent être à l'origine de cet échec. Dans mon cas, depuis que j'ai installé le logiciel de méthode de saisie Google, "Échec de la synchronisation du vcpu reg" est apparu. C'était le seul et unique changement avant le travail normal. Donc, après avoir désinstallé le logiciel Google Input, il a été récupéré. Juste une petite référence, même si je ne peux pas croire cette solution pendant longtemps non plus.


1

J'avais le Windows Virtual PC en cours d'exécution (sur Windows bien sûr). Une fois que j'ai éteint, l'émulateur s'est bien passé.

J'espère que cela t'aides.


1

J'essayais de lancer un émulateur Gingerbread 2.3.3 x86 et il ne se lancerait pas. Le passage de x86 à arm a permis de résoudre le problème.


Cela a résolu le problème pour moi. Je passe juste à ARM. Merci!
rhand

1

Pour moi, la seule chose qui a fonctionné en utilisant adv sur MacOs Yosemite, est de régler le processeur sur ARM(CPU natif de l'appareil - Nexus standard 4 ").


1

Si des machines virtuelles sont en cours d'exécution, suspendez-les et réessayez.


1

Pour moi, la réponse a été de définir Enable keyboard inputsur true dans les paramètres avancés de l'appareil virtuel.

C'était la première option que j'ai modifiée sur l'appareil, il est donc possible que le fait de modifier une option corrige également l'erreur en fonction du large éventail de réponses ci-dessus.

Remarque: j'ai confirmé précédemment qu'aucune VM n'est en cours d'exécution.


1

Correction du problème en changeant la version actuelle de Java dans Windows de Java 8 x64 à Java 7 x86.


0

Enfin, j'ai trouvé la réponse à cette question. J'ai eu exactement le même problème et il a été complètement résolu.

Un appareil virtuel ou une webcam est rarement la cause de votre problème.

Installez simplement le pilote du chipset de la carte mère.

Je vous recommande d'utiliser l'installateur automatique de chipset 3DP.

Bonne chance!


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.