Como corrigir o erro "Falha ao sincronizar o vcpu reg"?

156

Estou tentando usar o emulador Intel HAX x86 para Windows (8, se isso importa). Instalei tudo e criei um AVD para a versão do Android, e tudo parece correto, mas quando o executo, recebo esta saída:

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 o emulador não será executado. A parte significativa desse erro (Failed to sync vcpu reg)não é mencionada em QUALQUER LUGAR online, exceto no código-fonte do próprio HAX , mas não consigo descobrir como entender isso.

Alguém pode aconselhar sobre como superar esse erro? Eu realmente preciso fazer isso funcionar, porque a depuração no dispositivo e nos emuladores padrão é dolorosamente lenta.

Joshua Frank
fonte
3
Só queria observar que fui retirado deste projeto logo após fazer essa pergunta e nunca tive a chance de tentar nenhuma dessas soluções, por isso não sei qual é a resposta correta! Devo escolher a resposta mais votada e apenas aceitá-la?
Joshua Frank
3
@ JoshuaFrank: Não, apenas deixe como está. Infelizmente.
Lightness Races in Orbit

Respostas:

372

Verifique se você não possui nenhuma máquina virtual em execução. No meu caso, eu tinha genymotion em execução, o que estava causando esse erro.

JP2014
fonte
5
Este foi exatamente o meu problema e solução também. Obrigado!
Heath Borders
72
Ou mesmo ter o VirtualBox abriu sem qualquer VM correndo para mim
David Santiago Turino
7
Tenho esse problema no Mac. Depois de desligar o VBox, ele começou a funcionar.
0x8BADF00D
6
Exatamente o meu problema tão bem, esqueci que tinha um VirtualBox VM rodando
Bobby
32
Eu tive que parar todas as máquinas mu docker :(docker-machine stop <machine>
jtblin 04/10/2015
67

Eu tinha o VirtualBox em execução. Matar a VM permitida permitiu que o emulador fosse executado.

Jerome Anthony
fonte
6
Obrigado, nunca teria pensado nisso. Tinha uma caixa do Vagrant.
Ben Kane
4
Mesmo aqui, a docker-machine (boot2docker / virtualbox) estava em execução.
Tvial 18/09/2015
Apenas mais uma confirmação. Parei minha instância da caixa Virtual e meu emulador foi iniciado. Para sua informação, meu dispositivo virtual usava CPU / ABI = x86 e eu estava executando um macbook pro.
guyland123
3
isso é realmente um problema para mim .. Estou executando um aplicativo php que fornece API na caixa virtual do meu macbook e não consigo desenvolver um aplicativo Android que precise se conectar a essa API ... Acho que vou precisar implantar o php aplicativo em algum servidor e desenvolver sobre isso, oh bem
Tomáš Tibenský
isso funcionou, meu VirtualBox foi executado em segundo plano, agora eu realmente quero os dois ao trabalho
Irfan Ahmad
61

Se você estiver executando o Docker, precisará desmontar a máquina virtual

docker-machine stop default

Isso pressupõe que sua máquina docker seja chamada default. Se você quiser verificar o nome, use docker-machine ls

Uma solução mais simples; abra o virtuabox e pare a vm :-)


fonte
Uau, foi isso para mim. Louco. Como você descobriu isso?
Constantine
1
pesquisando o problema no google :-) e adicionando um pouco mais de explicação a ele #
Se você estiver em um aplicativo Mac e Docker está em execução na barra de tarefas, feche-o também, mesmo que ls estivador-máquina dá-lhe nada
Theodoros80
14

Eu tive esse problema. Para mim, era a versão HAXM.

Quando você obtém uma nova versão do HAMX por meio do SDK Manager, ele informa que está instalado. Não é. Você deve ir para esta pasta:

<SDK do Android> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

e execute intelhaxm-android.exe manualmente. No meu caso, eu tinha o 1.0.6 e atualizei para 1.1.

Eu acho que o que causou o erro em primeiro lugar foi que alguma outra parte do SDK que eu atualizei precisava de 1.1.

John Delaney
fonte
14

Conforme mencionado por outras respostas, verifique se nenhum serviço VirtualBox e docker está sendo executado com o seguinte comando no mac. ( systemctlno Linux)

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

Nesse caso, interrompa o serviço VBoxe docker.

launchctl stop org.virtualbox.app.VirtualBox.948
launchctl stop com.docker.docker.2032
prayagupd
fonte
13
  1. Pare GENYMOTION (abra a instância do VirtualBox, se alguma instância estiver em execução, pare-a).
  2. Abra AndroidStudio -> Execute o AVD Manager-> execute o dispositivo virtual AndroidStudio.

Os emuladores Android mais recentes não podem ser executados em paralelo com GENYMOTION

MANISH PATHAK
fonte
Ou pare a janela de encaixe também
nnhthuan 12/11/16
9

"vcpu reg" são "Registradores de CPU Virtual" que existem em muitos processadores com vários núcleos, hyperthreading ou outros recursos que permitem que as camadas mais altas acreditem que há mais de uma CPU presente quando não há - como x86s de hoje. Não há razão para entrar em detalhes - você pode imaginar que é necessário obter um "contexto de CPU virtual" único e coerente para o tipo de virtualização de hardware que o HAX oferece.

Normalmente, não é um problema executar várias máquinas virtuais de vários tipos simultaneamente. Mas se um deles trava, ou se comporta mal, ou apenas decide ser um porco, o HAX pode achar que simplesmente não consegue montar uma máquina virtual coerente, porque não pode sincronizar um contexto de CPU virtual para si próprio. Seria como tentar executar uma máquina real sem CPU.

A linha inferior é o gerenciador de tarefas aberto e mata as coisas que você não precisa e que parecem estar mantendo os recursos da máquina virtual. Na pior das hipóteses, é quase certo que uma reinicialização corrija o problema.

Scott Petrack
fonte
5

Etapas rápidas:

  1. Pare todas as máquinas virtuais do VirtualBox (ou seja, interrupção de vagabundos), saia do VirtualBox.
  2. Todas as máquinas portuárias também devem ser paradas. Saia do Docker.
Jucke
fonte
5

Isso aconteceu comigo também quando eu estava tentando executar o emulador VirtualBox e Android em uma máquina MacOS. Como outros já mencionaram acima, atualmente não é possível executar ambos (por exemplo, emulador baseado em VirtualBox e X86 -Intel) no MacOS e não ter certeza sobre as outras plataformas. Se precisarmos executar os dois, podemos escolher o emulador baseado em ARM. (emuladores baseados em braço normalmente são lentos)

Rukmal Dias
fonte
4

Eu estava recebendo o mesmo erro. Acho que existem vários motivos para esse erro, mas no meu caso foi por causa de um serviço chamado ".NCG". O serviço é o Network Content Guard da Inka Entworks e parece ser algum tipo de solução DRM. Uma vez desinstalado, o emulador funcionou bem usando o HAX.

Albert Park
fonte
1
Não tenho esse software, mas é uma boa pista sobre outros programas similares. Como você descobriu que esse era o problema?
21413 Joshua Frank
4

No meu caso, esse problema foi causado por ter uma webcam selecionada como "Câmera frontal" nas configurações do AVD. Configurá-lo como "Emulado" corrigiu esse problema para mim.

Roy de Jong
fonte
4

Eu enfrentei esse problema porque minha caixa virtual estava sendo executada com o Ubuntu. Quando desliguei minha caixa virtual, não enfrentei esse problema.

Revs
fonte
3

Eu tenho o mesmo erro na minha instalação do Windows 8.

Coisas que você pode tentar:

  • diminuir a quantidade de memória para o dispositivo emulado (e / ou fechar outros aplicativos)
  • desativar a emulação de GPU
  • remova a webcam de passagem

Para mim, o erro ocorre quando tento conectar uma webcam física à instância android emulada.

thijs
fonte
Vou tentar estes e relatar de volta. Obrigado!
21713 Joshua Frank
Engraçado para mim foi a solução para ativar a emulação de GPU.
22615 Rekire Re:
3

Isso continuou falhando até que eu mudei para [x] Use Host GPU, como mostra a figura.

Configuração AVD

raddevus
fonte
2
Sim - o mesmo para mim. No config.ini do AVD (antigo?), A propriedade foi configurada para: hw.gpu.enabled = no. depois de mudar-lo para sim - tudo funciona :)
icyerasor
3

Estou executando o boot2docker vm, logo abaixo ele resolveu o problema.

boot2docker down

eranga
fonte
2

Verifique se você não possui nenhuma máquina virtual em execução. No meu caso, eu tinha genymotion em execução, o que estava causando esse erro. quando eu matar o processo do genymotion e matar todo o processo relacionado ao Oracle VM VirtualBox, ele funcionará wangshiming, não me agradeça

user3016205
fonte
2

Sim, eu tinha a caixa virtual em execução e estava recebendo esse erro, encerrá-lo corrigiu o erro.

adubey
fonte
2

Eu estava em um mac e tive esse problema. Eu não acho que estava executando uma VM (eu tenho o vbox, mas não está em execução). Reiniciei o computador e, antes de iniciar qualquer outro aplicativo, tentei o emulador e ele funciona bem.

chovy
fonte
Exatamente, eu tinha o vbox rodando. Quando desliguei, o emulador começa a funcionar novamente.
Ricardo
2

Sim, as VMs do VirtualBox precisam ser interrompidas. Eu também tive que parar o Docker para Mac. A mensagem de erro menciona apenas o VirtualBox, o que me confundiu um pouco até eu perceber que o Docker for Mac está executando o xhyve.

geowa4
fonte
1

Se a sua CPU suportar limitação (como o SpeedStep da Intel ), tente desativar esse recurso no BIOS. É uma espécie de solução rápida, mas pelo menos funcionou.

Johannes Ewald
fonte
3
Parece que a otimização da CPU não é responsável por esse erro. O erro aparece no meu caso se uma VM VirtualBox estiver em execução no momento.
Johannes Ewald
1

Eu acho que deve haver várias razões para causar esse fracasso. No meu caso, desde que instalei o software do método de entrada do Google, "Falha ao sincronizar reg vcpu" apareceu. Essa foi a única mudança antes do trabalho normal. Então, depois de desinstalar o software Google Input, ele foi recuperado. Apenas uma pequena referência, embora eu também não possa acreditar nessa solução por muito tempo.

user2820159
fonte
1

Eu tinha o Windows Virtual PC em execução (no Windows, é claro). Depois que desliguei, o emulador correu bem.

Espero que isto ajude.

Jorge E. Hernández
fonte
1

Eu estava tentando iniciar um emulador Gingerbread 2.3.3 x86 e ele não seria iniciado. Mudar de x86 para arm fez com que o problema desaparecesse.

Daniel Wilson
fonte
Isso consertou para mim. Apenas mudando para o ARM. Obrigado!
rhand 26/07
1

Para mim, a única coisa que funcionou com o adv no MacOs Yosemite, foi configurar o processador para ARM(CPU nativa do dispositivo - Nexus padrão de 4 ").

Oleg Belousov
fonte
1

Se você tiver máquinas virtuais em execução, suspenda-as e tente novamente.

Arun Abraham
fonte
1

Para mim, a resposta foi definir Enable keyboard inputcomo verdadeiro nas configurações avançadas do dispositivo virtual.

Esta foi a primeira opção que alterei no dispositivo, portanto, é possível que o ato de alterar uma opção corrija o erro também com base na ampla gama de respostas acima.

Nota: Confirmei anteriormente que nenhuma VM está sendo executada.

rlfrahm
fonte
1

Corrigido o problema alterando a versão atual do Java no Windows de Java 8 x64 para Java 7 x86.

ruslangil
fonte
0

Finalmente, encontrei a resposta para esta pergunta. Eu tinha exatamente o mesmo problema e foi completamente resolvido.

O dispositivo virtual ou a webcam raramente são a causa do seu problema.

Basta instalar o driver do chipset da placa principal.

Eu recomendo que você use o autoinstaller do chipset 3DP.

Boa sorte!

Laringe
fonte
0

Para mim, era o google appengine rodando localmente.

LILkillaBEE
fonte