Как исправить ошибку «Не удалось синхронизировать vcpu reg»?


156

Я пытаюсь использовать эмулятор Intel HAX x86 для Windows (8, если это имеет значение). Я установил все и создал AVD для версии Android, и все выглядит правильно, но когда я запускаю его, я получаю такой вывод:

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

и эмулятор не будет работать. Значительная часть этой ошибки (Failed to sync vcpu reg)нигде не упоминается онлайн, кроме как в исходном коде самого HAX , но я не могу понять, как это можно понять.

Кто-нибудь может посоветовать, как обойти эту ошибку? Мне действительно нужно, чтобы это работало, потому что отладка на устройстве и в эмуляторах по умолчанию мучительно медленная.


3
Просто хотел отметить, что я снял этот проект сразу после того, как задал этот вопрос, и у меня никогда не было возможности попробовать какое-либо из этих решений, поэтому я не знаю, каков правильный ответ! Должен ли я выбрать лучший голосующий ответ и просто принять его?
Джошуа Франк

3
@JoshuaFrank: Нет просто оставить как есть. К сожалению.
Гонки легкости на орбите

Ответы:


372

Убедитесь, что у вас нет запущенных виртуальных машин. В моем случае у меня было запущено genymotion, которое вызывало эту ошибку.


5
Это была как раз моя проблема и решение. Спасибо!
Хит Границы

72
Или даже если открыть виртуальную
коробку

7
Получил эту проблему на Mac. После выключения VBox он начал работать.
0x8BADF00D

6
Точно так же моя проблема, забыл, что у меня была запущена виртуальная виртуальная машина
Бобби

32
Мне пришлось остановить все машины с docker-machine stop <machine>
док-станцией

67

У меня был запущен virtualbox. Убийство виртуальной машины позволило запустить эмулятор.


6
Спасибо, никогда бы не подумал об этом. У меня был бродячий ящик.
Бен Кейн

4
То же самое, докер-машина (boot2docker / virtualbox) работала.
tvial

Просто еще одно подтверждение. Я остановил свой экземпляр Virtual Box, и мой эмулятор запустился прямо сейчас. К вашему сведению, мое виртуальное устройство использовало CPU / ABI = x86, и я работал на MacBook Pro.
guyland123

3
это действительно проблема для меня .. Я запускаю приложение php, которое предоставляет api в виртуальной коробке на моем macbook, и я не могу разработать приложение для Android, которое должно подключаться к этому api ... Я думаю, мне нужно будет развернуть php приложение на каком-то сервере и развиваться на этом, да ладно
Томаш Тибенский

это сработало, мой виртуальный ящик работал в фоновом режиме, теперь я действительно хочу, чтобы они оба работали
Ирфан Ахмад

61

Если вы используете Docker, вам придется отключить виртуальную машину

docker-machine stop default

Это предполагает, что ваша докерская машина называется default. Если вы хотите проверить имя, используйте docker-machine ls

Более простое решение; откройте virtuabox и остановите виртуальную машину :-)


Ух ты, это было для меня. Псих. Как ты это понял?
Константин

1
исследовать проблему в google :-) и добавить к ней немного больше объяснений

Если у вас Mac и приложение Docker запущено на панели задач, закройте его тоже, даже если Docker-машина ls ничего не дает
Theodoros80

14

У меня была эта проблема. Для меня это была версия HAXM.

Когда вы получаете новую версию HAMX через SDK Manager, он сообщает, что он установлен. Это не. Вы должны перейти в эту папку:

<Android SDK> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

и запустите intelhaxm-android.exe вручную. В моем случае у меня была 1.0.6 и я обновился до 1.1.

Я думаю, что причиной ошибки, в первую очередь, было то, что какой-то другой части SDK, которую я обновил, нужна 1.1.


14

Как уже упоминалось в других ответах, убедитесь, что VirtualBox и служба Docker не запущены с помощью следующей команды в Mac. ( systemctlв Linux)

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

Если так, убей VBoxи dockerобслуживай.

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

13
  1. Остановите GENYMOTION (откройте экземпляр VirtualBox, если запущен какой-либо экземпляр, остановите его).
  2. Откройте AndroidStudio -> Запустить AVD Manager-> запустить виртуальное устройство AndroidStudio.

Последние эмуляторы Android не могут работать параллельно с GENYMOTION


Или остановите докер
nhththuan

9

«vcpu reg» - это «Виртуальные регистры ЦП», которые существуют на многих процессорах, которые имеют такие вещи, как многоядерные, гиперпоточность или другие функции, которые позволяют более высоким уровням полагать, что, когда их нет, имеется более одного ЦП, например: сегодняшние x86s. Нет причин вдаваться в подробности - вы можете себе представить, что получение единого «виртуального контекста ЦП» необходимо для аппаратной виртуализации, предлагаемой HAX.

Как правило, это не проблема для одновременного запуска нескольких виртуальных машин разных типов. Но если один из них выходит из строя, или ведет себя плохо, или просто решает быть боровом, HAX может обнаружить, что просто не может собрать согласованную виртуальную машину, потому что он не может синхронизировать контекст виртуального ЦП для себя. Это все равно что пытаться запустить реальную машину без процессора.

Суть в том, что вы открываете диспетчер задач и убиваете ненужные вещи, которые выглядят так, как будто они содержат ресурсы виртуальной машины. В худшем случае перезагрузка почти наверняка решит проблему.


5

Быстрые шаги:

  1. Остановите все виртуальные машины VirtualBox (например, прервитесь), выйдите из VirtualBox.
  2. Все док-машины тоже должны быть остановлены. Выйти из Докера.

5

Это случилось со мной также, когда я пытался запустить как VirtualBox, так и эмулятор Android на компьютере MacOS. Как уже упоминалось выше, в настоящее время невозможно запустить оба (т. Е. VirtualBox и эмулятор на основе X86-Intel) в MacOS, и не уверен насчет других платформ. Если нам нужно запустить оба, мы можем выбрать эмулятор на основе ARM. (эмуляторы на основе руки обычно работают медленно)


4

Я получаю ту же ошибку. Я предполагаю, что есть разные причины этой ошибки, но в моем случае это было из-за службы с именем ".NCG". Служба Network Content Guard от Inka Entworks, и, похоже, является своего рода решением DRM. После удаления эмулятор работал нормально, используя HAX.


1
У меня нет этого программного обеспечения, но это хорошая подсказка о других, подобных программах. Как, черт возьми, вы обнаружили, что это была проблема?
Джошуа Франк

4

В моем случае оказалось, что эта проблема была вызвана тем, что в настройках AVD была выбрана веб-камера в качестве «передней камеры». Установка его в «Эмулированный» исправила эту проблему для меня.


4

Я столкнулся с этой проблемой, потому что моя виртуальная коробка работала с Ubuntu. Когда я закрыл свою виртуальную коробку, я не столкнулся с этой проблемой.


3

Я получил ту же ошибку на моей установке Windows 8.

Вещи, которые вы могли бы попробовать:

  • уменьшить объем памяти для эмулируемого устройства (и / или закрыть другие приложения)
  • отключить эмуляцию GPU
  • удалить сквозную веб-камеру

Для меня ошибка возникает, когда я пытаюсь подключить физическую веб-камеру к эмулируемому экземпляру Android.


Я попробую и доложу. Спасибо!
Джошуа Франк

Забавно для меня было решение включить эмуляцию GPU.
rekire

3

Это продолжало работать до тех пор, пока я не изменил его на [x] Use Host GPU, как показано на рис.

AVD Настройка


2
Да, то же самое для меня. В config.ini AVD (старая?) Для свойства было установлено следующее: hw.gpu.enabled = no. после изменения на да - все работает :)
icyerasor

3

Я запускаю boot2docker vm, просто он решил проблему.

boot2docker down


2

Убедитесь, что у вас нет запущенных виртуальных машин. В моем случае у меня было запущено genymotion, которое вызывало эту ошибку. когда я убиваю процесс genymotion и убиваю весь процесс, связанный с Oracle VM VirtualBox, тогда он работает, wangshiming, не благодари меня


2

Да, у меня был запущен виртуальный ящик, и я получал эту ошибку, закрывая ее, исправлял ошибку.


2

Я был на Mac и имел эту проблему. Я не думал, что я запускаю виртуальную машину (у меня есть vbox, но он не работает). Я перезагрузил компьютер и перед запуском любых других приложений я попробовал эмулятор, и он работает нормально.


Точно, у меня был запущен vbox. Когда я отключился, эмулятор снова начал работать.
Рикардо


2

Да, виртуальные машины VirtualBox должны быть остановлены. Мне также пришлось остановить Docker для Mac. В сообщении об ошибке упоминается только VirtualBox, что немного смущало меня, пока я не понял, что Docker для Mac работает с xhyve.


1

Если ваш процессор поддерживает дросселирование (например, Intel SpeedStep ), попробуйте отключить эту функцию в BIOS. Это своего рода исправление, но по крайней мере это сработало.


3
Кажется, что дросселирование процессора не несет ответственности за эту ошибку. Ошибка появляется в моем случае, если виртуальная машина VirtualBox в настоящее время работает.
Йоханнес Эвальд

1

Я думаю, что причиной этого сбоя должно быть множество причин. В моем случае, так как я установил программное обеспечение метода ввода Google, появилось сообщение «Не удалось синхронизировать vcpu reg». Это было единственное изменение перед нормальной работой. Итак, после удаления программного обеспечения Google Input оно было восстановлено. Просто небольшая ссылка, хотя я не могу поверить и этому решению в течение длительного времени.


1

У меня был запущен Windows Virtual PC (конечно, на Windows). После того как я выключился, эмулятор прошел нормально.

Надеюсь это поможет.


1

Я пытался запустить эмулятор Gingerbread 2.3.3 x86, и он не запустился. Переход с x86 на arm убрал проблему.


Это исправило это для меня. Просто переключаюсь на ARM. Спасибо!
rhand

1

Для меня единственной вещью, которая работала с использованием adv на MacOs Yosemite, является установка процессора на ARM(родной процессор устройства - стандартный 4 "Nexus).



1

Для меня ответом было установить Enable keyboard inputзначение true в дополнительных настройках виртуального устройства.

Это был первый вариант, который я изменил на устройстве, поэтому возможно, что акт изменения параметра также исправляет ошибку, основываясь на множестве ответов выше.

Примечание. Ранее я подтвердил, что виртуальные машины не работают.


1

Исправлена ​​проблема путем изменения текущей версии Java в Windows с Java 8 x64 на Java 7 x86.


0

Наконец, я нашел ответ на этот вопрос. У меня была точно такая же проблема, и она была полностью решена.

Виртуальное устройство или веб-камера редко являются причиной вашей проблемы.

Просто установите драйвер чипсета для материнской платы.

Рекомендую использовать автоустановщик чипсета 3DP.

Удачи!


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.