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.

Joshua Frank
la source
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.

JP2014
la source
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.

Jérôme Anthony
la source
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 :-)


la source
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.

John Delaney
la source
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
prier
la source
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

MANISH PATHAK
la source
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.

Scott Petrack
la source
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.
Jucke
la source
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)

Rukmal Dias
la source
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.

Albert Park
la source
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.

Roy de Jong
la source
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.

Rév.
la source
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.

thijs
la source
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

raddevus
la source
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

eranga
la source
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

utilisateur3016205
la source
2

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

adubey
la source
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.

chovy
la source
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.

geowa4
la source
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é.

Johannes Ewald
la source
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.

user2820159
la source
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.

Jorge E. Hernández
la source
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.

Daniel Wilson
la source
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 ").

Oleg Belousov
la source
1

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

Arun Abraham
la source
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.

rlfrahm
la source
1

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

ruslangil
la source
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!

Larynx
la source
0

Pour moi, c'était Google Appengine fonctionnant localement.

LILkillaBEE
la source