Jak naprawić błąd „Błąd synchronizacji regu vcpu”?


156

Próbuję użyć emulatora Intel HAX x86 dla Windows (8, jeśli to ma znaczenie). Zainstalowałem wszystko i utworzyłem AVD dla wersji Androida i wszystko wydaje się poprawne, ale kiedy go uruchamiam, otrzymuję ten wynik:

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

a emulator nie będzie działać. Znaczna część tego błędu (Failed to sync vcpu reg)nie jest NIGDZIE wspomniana w Internecie, z wyjątkiem kodu źródłowego samego HAX , ale nie wiem, jak to nadać sens.

Czy ktoś może doradzić, jak ominąć ten błąd? Naprawdę potrzebuję, aby to działało, ponieważ debugowanie na urządzeniu i w domyślnych emulatorach jest boleśnie powolne.


3
Chciałem tylko zauważyć, że od razu po zadaniu tego pytania odciągnięto mnie od tego projektu i nigdy nie miałem okazji wypróbować żadnego z tych rozwiązań, więc nie wiem, jaka jest poprawna odpowiedź! Czy powinienem wybrać odpowiedź z największą liczbą głosów i po prostu ją zaakceptować?
Joshua Frank

3
@JoshuaFrank: Nie, po prostu zostaw tak, jak jest. Niestety.
Wyścigi lekkości na orbicie,

Odpowiedzi:


372

Upewnij się, że nie masz uruchomionych żadnych maszyn wirtualnych. W moim przypadku miałem uruchomioną genymotion, która powodowała ten błąd.


5
To był właśnie mój problem i rozwiązanie. Dzięki!
Heath Borders

72
Lub nawet otwarcie virtualbox bez uruchomionej dla mnie maszyny wirtualnej
David Santiago Turiño

7
Mam ten problem na komputerze Mac. Po wyłączeniu VBox zaczął działać.
0x8BADF00D

6
Dokładnie mój problem, zapomniałem, że mam uruchomioną maszynę wirtualną VirtualBox
Bobby

32
Musiałem zatrzymać wszystkie maszyny docker-machine stop <machine>
dokowe

67

Miałem uruchomiony virtualbox. Zabicie maszyny wirtualnej pozwoliło na uruchomienie emulatora.


6
Dzięki, nigdy bym o tym nie pomyślał. Miałem pudełko Vagranta.
Ben Kane,

4
To samo tutaj, docker-machine (boot2docker / virtualbox) działał.
tvial

Kolejne potwierdzenie. Zatrzymałem instancję Virtual box i mój emulator został uruchomiony od razu. FYI, moje urządzenie wirtualne używało CPU / ABI = x86, a ja pracowałem na Macbooku Pro.
guyland123

3
to jest dla mnie naprawdę problem .. Używam aplikacji php, która zapewnia interfejs API w wirtualnym pudełku na moim Macbooku i nie mogę opracować aplikacji na Androida, która wymaga połączenia z tym interfejsem ... Myślę, że będę musiał wdrożyć php app na jakimś serwerze i rozwijaj na nim, no cóż
Tomáš Tibenský

to zadziałało, mój virtualbox działał w tle, teraz naprawdę chcę, aby oboje działali
Irfan Ahmad

61

Jeśli używasz Dockera, musisz wyłączyć maszynę wirtualną

docker-machine stop default

Zakłada się, że wywoływana jest twoja maszyna dokera default. Jeśli chcesz sprawdzić nazwę, użyj docker-machine ls

Prostsze rozwiązanie; otwórz virtuabox i zatrzymaj vm :-)


Wow, to było to dla mnie. Zwariowany. Jak to zrozumiałeś?
Constantine

1

Jeśli korzystasz z komputera Mac i aplikacja Docker działa na pasku zadań, zamknij ją również, nawet jeśli docker-machine ls nic ci nie daje
Theodoros80

14

Miałem ten problem. Dla mnie była to wersja HAXM.

Gdy pobierzesz nową wersję HAMX za pośrednictwem Menedżera SDK, otrzymasz informację, że jest zainstalowana. Nie jest. Musisz przejść do tego folderu:

<Android SDK> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

i ręcznie uruchom plik intelhaxm-android.exe . W moim przypadku miałem 1.0.6 i zaktualizowałem do 1.1.

Myślę, że przyczyną błędu było przede wszystkim to, że inna część pakietu SDK, którą zaktualizowałem, wymagała wersji 1.1.


14

Jak wspomniano w innych odpowiedziach, upewnij się, że żadna usługa VirtualBox i docker nie działa z następującym poleceniem w systemie Mac. ( systemctlw systemie Linux)

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

Jeśli tak, zabij VBoxi dockernapraw.

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

13
  1. Zatrzymaj GENYMOTION (otwórz instancję VirtualBox, jeśli jakakolwiek instancja jest uruchomiona, zatrzymaj ją).
  2. Otwórz AndroidStudio -> Uruchom AVD Manager -> uruchom urządzenie wirtualne AndroidStudio.

Najnowsze emulatory Androida nie mogą działać równolegle z GENYMOTION


Lub też zatrzymaj
docker

9

„vcpu reg” to „rejestry wirtualnego procesora”, które istnieją na wielu procesorach, które mają takie funkcje, jak wiele rdzeni, wielowątkowość lub inne funkcje, które pozwalają wyższym warstwom wierzyć, że istnieje więcej niż jeden procesor, gdy go nie ma - na przykład dzisiejsze x86. Nie ma powodu, aby zagłębiać się w szczegóły - można sobie wyobrazić, że uzyskanie spójnego, pojedynczego „kontekstu wirtualnego procesora” jest konieczne dla tego rodzaju wirtualizacji sprzętowej, jaką oferuje HAX.

Zwykle jednoczesne uruchamianie wielu maszyn wirtualnych różnego rodzaju nie stanowi problemu. Ale jeśli jeden z nich ulegnie awarii, źle się zachowa lub po prostu zdecyduje się zostać świnią, HAX może stwierdzić, że po prostu nie może złożyć spójnej maszyny wirtualnej, ponieważ nie może zsynchronizować dla siebie kontekstu wirtualnego procesora. To jak próba uruchomienia prawdziwej maszyny bez procesora.

Ostatecznie jest to otwarty menedżer zadań i zabijaj rzeczy, których nie potrzebujesz i które wyglądają tak, jakby mogły przechowywać zasoby maszyny wirtualnej. W najgorszym przypadku ponowne uruchomienie jest prawie pewne, aby rozwiązać problem.


5

Szybkie kroki:

  1. Zatrzymaj wszystkie maszyny wirtualne VirtualBox (tj. Zatrzymanie włóczęgi), zamknij VirtualBox.
  2. Wszystkie maszyny dokowane również powinny zostać zatrzymane. Zamknij Docker.

5

Zdarzyło mi się to również, gdy próbowałem uruchomić zarówno VirtualBox, jak i emulator Androida na maszynie MacOS. Jak inni wspomnieli powyżej, obecnie nie jest możliwe uruchomienie obu (tj. Emulatora opartego na VirtualBox i X86 -Intel) w systemie MacOS i nie jestem pewien co do innych platform. Jeśli musimy uruchomić oba, możemy wybrać emulator oparty na ARM. (emulatory ramienia są zwykle wolne)


4

Otrzymałem ten sam błąd. Domyślam się, że istnieje wiele przyczyn tego błędu, ale w moim przypadku było to spowodowane usługą o nazwie „.NCG”. Usługa to Network Content Guard firmy Inka Entworks i wydaje się być pewnego rodzaju rozwiązaniem DRM. Po odinstalowaniu emulator działał dobrze przy użyciu HAX.


1
Nie mam tego oprogramowania, ale jest to dobra wskazówka dotycząca innych, podobnych programów. Jak, u licha, odkryłeś, że to jest problem?
Joshua Frank

4

W moim przypadku okazało się, że przyczyną tego problemu jest wybranie w ustawieniach AVD kamery internetowej jako „Kamera przednia”. Ustawienie tej opcji na „Emulowane” rozwiązało ten problem.


4

Napotkałem ten problem, ponieważ miałem moje wirtualne pudełko działające z Ubuntu. Kiedy zamknąłem moje wirtualne pudełko, nie napotkałem tego problemu.


3

Wystąpił ten sam błąd podczas instalacji systemu Windows 8.

Rzeczy, które możesz spróbować:

  • zmniejszyć ilość pamięci dla emulowanego urządzenia (i / lub zamknąć inne aplikacje)
  • wyłącz emulację GPU
  • wyjmij przelotową kamerę internetową

U mnie błąd pojawia się, gdy próbuję podłączyć fizyczną kamerę internetową do emulowanej instancji Androida.


Spróbuję i zdam raport. Dzięki!
Joshua Frank

Zabawne było dla mnie rozwiązanie umożliwiające emulację GPU.
rekire

3

To ciągle zawodziło, dopóki nie zmieniłem go na [x] Użyj GPU hosta, jak pokazano na rys.

Konfiguracja AVD


2
Tak - to samo dla mnie. W config.ini pliku AVD (stary?) Właściwość została ustawiona na: hw.gpu.enabled = no. po zmianie na tak - wszystko działa :)
icyerasor

3

Uruchamiam boot2docker vm, po prostu w dół rozwiązałem problem.

boot2docker down


2

Upewnij się, że nie masz uruchomionych żadnych maszyn wirtualnych. W moim przypadku miałem uruchomioną genymotion, która powodowała ten błąd. kiedy zabijam proces genymotion i zabijam cały proces związany z Oracle VM VirtualBox, to działa przez wangshiming, nie dziękuj mi


2

Tak, miałem uruchomione wirtualne pudełko i otrzymywałem ten błąd, wyłączenie go naprawiło błąd.


2

Byłem na komputerze Mac i miałem ten problem. Nie sądziłem, że mam maszynę wirtualną (mam vbox, ale nie działa). Zrestartowałem komputer i przed uruchomieniem innych aplikacji wypróbowałem emulator i działa dobrze.


Dokładnie, miałem uruchomiony vbox. Kiedy się wyłączyłem, emulator znów zaczął działać.
Ricardo


2

Tak, maszyny wirtualne VirtualBox muszą zostać zatrzymane. Musiałem też zatrzymać Docker for Mac. Komunikat o błędzie wspomina tylko o VirtualBox, co trochę mnie zdezorientowało, dopóki nie zdałem sobie sprawy, że Docker for Mac działa xhyve.


1

Jeśli Twój procesor obsługuje dławienie (np. SpeedStep Intela ), spróbuj wyłączyć tę funkcję w systemie BIOS. To trochę szybka naprawa, ale przynajmniej zadziałała.


3
Wygląda na to, że dławienie procesora nie jest odpowiedzialne za ten błąd. Błąd pojawia się w moim przypadku, jeśli maszyna wirtualna VirtualBox jest obecnie uruchomiona.
Johannes Ewald

1

Myślę, że przyczyną tego niepowodzenia musi być wiele przyczyn. W moim przypadku, ponieważ zainstalowałem oprogramowanie metody wprowadzania Google, pojawił się komunikat „Failed to syncpu reg”. To była jedyna zmiana przed normalną pracą. Tak więc po odinstalowaniu oprogramowania Google Input zostało odzyskane. Tylko mała referencja, chociaż nie mogę uwierzyć w to rozwiązanie przez długi czas.


1

Miałem uruchomiony Windows Virtual PC (oczywiście na Windowsie). Po wyłączeniu emulator poszedł dobrze.

Mam nadzieję że to pomoże.


1

Próbowałem uruchomić emulator Gingerbread 2.3.3 x86 i nie chciał się uruchomić. Zmiana z x86 na arm sprawiła, że ​​problem zniknął.


To naprawiło to dla mnie. Po prostu przełączam się na ARM. Dzięki!
rhand

1

Dla mnie jedyną rzeczą, która zadziałała na adw na MacOs Yosemite, jest ustawienie procesora na ARM(natywny procesor urządzenia - standard 4 "Nexus).



1

Dla mnie odpowiedzią było ustawienie Enable keyboard inputna true w zaawansowanych ustawieniach urządzenia wirtualnego.

To była pierwsza opcja, którą zmieniłem na urządzeniu, więc jest możliwe, że zmiana opcji również naprawia błąd w oparciu o szeroki wachlarz odpowiedzi powyżej.

Uwaga: potwierdziłem wcześniej, że żadna maszyna wirtualna nie jest uruchomiona.


1

Naprawiono problem, zmieniając aktualną wersję oprogramowania Java w systemie Windows z Java 8 x64 na Java 7 x86.


0

Wreszcie znalazłem odpowiedź na to pytanie. Miałem dokładnie ten sam problem i został całkowicie rozwiązany.

Urządzenie wirtualne lub kamera internetowa rzadko są przyczyną problemu.

Wystarczy zainstalować sterownik chipsetu płyty głównej.

Zalecam użycie autoinstalatora chipsetu 3DP.

Powodzenia!


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.