Come posso correggere l'errore "Impossibile sincronizzare vcpu reg"?


156

Sto cercando di utilizzare l'emulatore Intel HAX x86 per Windows (8, se è importante). Ho installato tutto e creato un AVD per la versione Android, e tutto sembra corretto, ma quando lo eseguo, ottengo questo output:

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

e l'emulatore non funzionerà. La parte significativa di questo errore (Failed to sync vcpu reg)non è menzionata OVUNQUE online, tranne nel codice sorgente per HAX stesso , ma non riesco a capire come dare un senso a questo.

Qualcuno può consigliare su come superare questo errore? Ho davvero bisogno che funzioni, perché il debug sul dispositivo e negli emulatori predefiniti è dolorosamente lento.


3
Volevo solo notare che sono stato tirato fuori da questo progetto subito dopo aver fatto questa domanda e non ho mai avuto la possibilità di provare nessuna di queste soluzioni, quindi non so quale sia la risposta corretta! Devo scegliere la risposta più votata e accettarla?
Joshua Frank,

3
@JoshuaFrank: No, lascialo così com'è. Purtroppo.
Razze di leggerezza in orbita,

Risposte:


372

Assicurati di non avere macchine virtuali in esecuzione. Nel mio caso, ho avuto genymotion in esecuzione che stava causando questo errore.


5
Questo era esattamente il mio problema e la mia soluzione. Grazie!
Heath Borders,

72
O anche avere virtualbox aperto senza VM in esecuzione per me
David Santiago Turiño,

7
Ho riscontrato questo problema su Mac. Dopo aver spento VBox ha iniziato a funzionare.
0x8BADF00D

6
Esattamente anche il mio problema, ho dimenticato di avere una VirtualBox VM in esecuzione
Bobby,

32
Ho dovuto fermare tutte le macchine docker-machine stop <machine>
docker

67

Ho avuto Virtualbox in esecuzione. L'uccisione della VM consentita ha permesso l'esecuzione dell'emulatore.


6
Grazie, non ci avrei mai pensato. Aveva una scatola di Vagrant.
Ben Kane,

4
Lo stesso qui, docker-machine (boot2docker / virtualbox) era in esecuzione.
tvial

Solo un'altra conferma. Ho fermato la mia istanza di Virtual box e il mio emulatore si è avviato. Cordiali saluti il ​​mio dispositivo virtuale stava usando CPU / ABI = x86 e stavo funzionando su un macbook pro.
guyland123,

3
questo è davvero un problema per me .. Sto eseguendo un'app php che fornisce api in scatola virtuale sul mio macbook e non riesco a sviluppare un'app Android che deve connettersi a quell'api ... Immagino che dovrò distribuire il php app su alcuni server e svilupparla su questo, vabbè
Tomáš Tibenský

ha funzionato, la mia virtualbox era in esecuzione in background, ora voglio davvero che funzionino entrambi
Irfan Ahmad,

61

Se stai eseguendo Docker dovresti smontare la macchina virtuale

docker-machine stop default

Ciò presuppone che venga chiamata la macchina docker default. Se vuoi controllare il nome usa docker-machine ls

Una soluzione più semplice; apri virtuabox e ferma la vm :-)


Wow, questo è stato per me. Pazzo. Come l'hai capito?
Costantino,

1
ricercando il problema su google :-) e aggiungendo una spiegazione in più ad esso

Se sei su un Mac e l'app Docker è in esecuzione sulla barra delle applicazioni, chiudila anche se la docker-machine ls non ti dà niente
Theodoros80

14

Ho avuto questo problema Per me era la versione HAXM.

Quando ottieni una nuova versione di HAMX tramite SDK Manager, ti dice che è installata. Non è. Devi andare in questa cartella:

<Android SDK> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

ed esegui intelhaxm-android.exe manualmente. Nel mio caso, avevo 1.0.6 e aggiornato a 1.1.

Penso che ciò che ha causato l'errore in primo luogo sia stato il fatto che qualche altra parte dell'SDK che avevo aggiornato necessitasse di 1.1.


14

Come indicato da altre risposte, assicurati che nessun servizio VirtualBox e docker sia in esecuzione con il seguente comando in mac. ( systemctlin Linux)

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

In tal caso, uccidi il servizio VBoxe docker.

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

13
  1. Arresta GENYMOTION (apri l'istanza di VirtualBox se un'istanza è in esecuzione, interrompila).
  2. Apri AndroidStudio -> Esegui AVD Manager-> Esegui dispositivo virtuale AndroidStudio.

Gli emulatori Android più recenti non sono in grado di funzionare in parallelo con GENYMOTION


O ferma anche la finestra mobile
nnhthuan,

9

"vcpu reg" sono "Registri CPU virtuali" che esistono su molti processori che hanno elementi come più core, hyperthreading o altre funzionalità che consentono ai livelli più alti di credere che ci sia più di una CPU presente quando non c'è - come x86 di oggi. Nessun motivo per entrare nei dettagli: puoi immaginare che ottenere un unico "contesto di CPU virtuale" coerente sia necessario per il tipo di virtualizzazione hardware che HAX offre.

Normalmente, non è un problema eseguire contemporaneamente più macchine virtuali di vario tipo. Ma se uno di essi si arresta in modo anomalo o si comporta in modo anomalo o decide semplicemente di essere un porco, HAX potrebbe scoprire che non può semplicemente mettere insieme una macchina virtuale coerente, perché non può sincronizzare un contesto di CPU virtuale per sé. Sarebbe come provare a far funzionare una macchina reale senza CPU.

La linea di fondo è open task manager e uccide le cose che non ti servono e che sembrano contenere risorse di macchine virtuali. Nel peggiore dei casi, un riavvio è quasi certo per risolvere il problema.


5

Passaggi rapidi:

  1. Arresta tutte le macchine virtuali VirtualBox (ovvero l'arresto del vagabondo), esci da VirtualBox.
  2. Anche tutte le docker-machine dovrebbero essere arrestate. Esci da Docker.

5

Questo mi è successo anche quando stavo cercando di eseguire sia l'emulatore VirtualBox che Android in un computer MacOS. Come altri hanno già detto, attualmente non è possibile eseguire entrambi (ovvero VirtualBox e X86 -Intel based emulator) in MacOS e non essere sicuri delle altre piattaforme. Se dobbiamo eseguire entrambi possiamo scegliere l'emulatore basato su ARM. (gli emulatori basati sul braccio sono normalmente lenti)


4

Stavo ottenendo lo stesso errore. Immagino che ci siano varie ragioni per questo errore, ma nel mio caso è stato a causa di un servizio chiamato ".NCG". Il servizio è Network Content Guard di Inka Entworks e sembra essere un tipo di soluzione DRM. Una volta disinstallato, l'emulatore ha funzionato bene usando HAX.


1
Non ho quel software, ma è un buon indizio su altri programmi simili. Come mai hai scoperto che questo era il problema?
Joshua Frank,

4

Nel mio caso, si è scoperto che questo problema era causato dalla selezione di una webcam come "Fotocamera anteriore" nelle impostazioni dell'AVD. Impostandolo su "Emulato" ho risolto questo problema per me.


4

Ho affrontato questo problema perché avevo la mia scatola virtuale in esecuzione con Ubuntu su di esso. Quando ho chiuso la mia scatola virtuale non ho riscontrato questo problema.


3

Ho avuto lo stesso errore sulla mia installazione di Windows 8.

Cose che potresti provare:

  • ridurre la quantità di memoria per il dispositivo emulato (e / o chiudere altre applicazioni)
  • disabilita l'emulazione GPU
  • rimuovere la webcam pass-through

Per me, l'errore si verifica quando provo a collegare una webcam fisica all'istanza Android emulata.


Proverò questi e riporterò indietro. Grazie!
Joshua Frank,

Divertente per me è stata la soluzione per abilitare l'emulazione GPU.
rekire il

3

Questo ha continuato a fallire fino a quando non l'ho cambiato in [x] Usa GPU host come mostrato in figura.

Impostazione AVD


2
Sì, lo stesso per me. Nel config.ini dell'AVD (vecchio?) La proprietà era impostata su: hw.gpu.enabled = no. dopo averlo cambiato in sì - tutto funziona :)
icyerasor il

3

Sto eseguendo boot2docker vm, proprio in fondo ha risolto il problema.

boot2docker down


2

Assicurati di non avere macchine virtuali in esecuzione. Nel mio caso, ho avuto genymotion in esecuzione che stava causando questo errore. quando uccido il processo di genymotion e uccido tutti i processi relativi a Oracle VM VirtualBox, allora funziona facendo wangshiming non ringraziarmi


2

Ya, avevo la scatola virtuale in esecuzione e stavo ottenendo questo errore, chiudendolo risolto l'errore.


2

Ero su un mac e ho avuto questo problema. Non pensavo di eseguire una VM (ho vbox ma non è in esecuzione). Ho riavviato il mio computer e prima di avviare qualsiasi altra app ho provato l'emulatore e funziona benissimo.


Esattamente, avevo Vbox in esecuzione. Quando mi sono sintonizzato, l'emulatore ricomincia a funzionare.
Ricardo,


2

Sì, le VM VirtualBox devono essere arrestate. Ho anche dovuto interrompere Docker per Mac. Il messaggio di errore menziona solo VirtualBox, che mi ha confuso un po 'fino a quando ho capito che Docker per Mac esegue xhyve.


1

Se la tua CPU supporta il throttling (come Intel SpeedStep ) prova a disabilitare quella funzionalità nel tuo BIOS. È una specie di soluzione rapida ma almeno ha funzionato.


3
Sembra che la limitazione della CPU non sia responsabile di questo errore. L'errore appare nel mio caso se una VM VirtualBox è attualmente in esecuzione.
Johannes Ewald,

1

Penso che debba essere una varietà di ragioni a causare questo fallimento. Nel mio caso, da quando ho installato il software del metodo di input di Google, è apparso "Impossibile sincronizzare vcpu reg". Questo è stato l'unico e unico cambiamento prima del normale funzionamento. Quindi, dopo aver disinstallato il software di input di Google, è stato recuperato. Solo un piccolo riferimento, anche se non riesco a credere a questa soluzione per molto tempo.


1

Avevo Windows Virtual PC in esecuzione (su Windows ovviamente). Una volta spento, l'emulatore è andato bene.

Spero che questo ti aiuti.


1

Stavo provando a lanciare un emulatore x86 Gingerbread 2.3.3 e non si avviava. Il passaggio da x86 a arm ha risolto il problema.


Questo mi ha risolto. Basta passare a ARM. Grazie!
UR e

1

Per me, l'unica cosa che ha funzionato usando adv su Yosemite di MacO è impostare il processore su ARM(CPU nativa del dispositivo - Nexus standard da 4 ").



1

Per me la risposta è stata impostata Enable keyboard inputsu true nelle impostazioni avanzate del dispositivo virtuale.

Questa è stata la prima opzione che ho modificato sul dispositivo, quindi è possibile che l'atto di modificare un'opzione risolva l'errore in base alla vasta gamma di risposte sopra.

Nota: in precedenza ho confermato che nessuna VM è in esecuzione.


1

Risolto il problema modificando la versione corrente di Java in Windows da Java 8 x64 a Java 7 x86.


0

Alla fine ho trovato la risposta a questa domanda. Ho avuto esattamente lo stesso problema ed è stato completamente risolto.

Il dispositivo virtuale o la webcam raramente sono la causa del tuo problema.

Installa il driver del chipset della scheda madre.

Ti consiglio di utilizzare l'autoinstaller del chipset 3DP.

In bocca al lupo!


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.