android - Como faço para corrigir o erro "Falha ao sincronizar o vcpu reg"?




android-emulator intel (25)

Estou tentando usar o emulador Intel HAX x86 para Windows (8, se isso importa). Eu instalei tudo e criei um AVD para a versão android, e tudo parece correto, mas quando eu executo, recebo essa 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 deste erro (Failed to sync vcpu reg) não é mencionada EM QUALQUER LUGAR on-line, exceto no código-fonte do próprio HAX , mas não consigo entender como fazer algum sentido disso.

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.


Answers

Eu estava tentando lançar um emulador Gingerbread 2.3.3 x86 e não iria lançar. Mudar de x86 para arm fez o problema desaparecer.


Eu tenho o mesmo erro no meu windows 8 instalar.

Coisas que você poderia 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 anexar uma webcam física à instância do emulado do Android.


Etapas rápidas:

  1. Parar todas as máquinas virtuais do VirtualBox (ou seja, travrant halt), saia do VirtualBox.
  2. Todas as máquinas docker devem ser paradas também. Saia do Docker.

Se você estiver executando máquinas virtuais, suspenda-as e tente novamente.


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


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


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

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

<Android SDK> \ extras \ intel \ Hardware_Accelerated_Execution_Manager \

e execute intelhaxm-android.exe manualmente. No meu caso, eu tinha 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 tinha atualizado precisava 1.1.



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


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

docker-machine stop default

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

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


Estou executando o boot2docker vm, apenas resolvi o problema.

boot2docker down


Se o seu processador suporta aceleração (como o SpeedStep da Intel), tente desativar esse recurso no seu BIOS. É uma espécie de correcção rápida, mas pelo menos funcionou.


Para mim, a resposta foi configurar a opção Enable keyboard input para true nas configurações avançadas do dispositivo virtual.

Esta foi a primeira opção que alterei no dispositivo, por isso é possível que o ato de alterar uma opção também corrige o erro com base na grande variedade de respostas acima.

Nota: Confirmei anteriormente que nenhuma VM está em execução.


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


Isso continuou falhando até que eu mudei para [x] Use GPU Host, como mostrado na foto.


"vcpu reg" são "Virtual CPU REGisters" que existem em vários processadores que possuem vários núcleos, hyperthreading ou outros recursos que permitem que camadas mais altas acreditem que há mais de uma CPU presente quando não há - como x86s de hoje. Nenhuma razão para entrar em detalhes - você pode imaginar que obter um "contexto de CPU virtual" único e coerente é necessário 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 falhar, ou se comportar mal, ou simplesmente decidir ser um porco, o HAX pode achar que não é possível montar uma máquina virtual coerente, porque não é possível sincronizar um contexto de CPU virtual para si mesmo. Seria como tentar executar uma máquina real sem CPU.

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


Certifique-se de não ter nenhuma máquina virtual em execução. No meu caso, eu tinha genymotion em execução que estava causando esse erro. Quando eu mato o Processo do genymotion e mato todo o processo relacionado ao Oracle VM VirtualBox, então ele funciona por wangshiming, não me agradeça


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


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 (isto é, emulador baseado em VirtualBox e X86 -Intel) no MacOS e não ter certeza sobre as outras plataformas. Se precisarmos executar ambos, podemos escolher o emulador baseado em ARM. (emuladores baseados em braços são normalmente lentos)


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

Espero que isto ajude.


Finalmente, encontrei o anwer para essa pergunta. Eu tive exatamente o mesmo problema e foi completamente resolvido.

O dispositivo virtual ou webcam raramente é a causa do seu problema.

Basta instalar o driver do chipset da placa-mãe.

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

Boa sorte!


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 para Mac está rodando xhyve.


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


Certifique-se de não ter nenhuma máquina virtual em execução. No meu caso, eu tinha genymotion em execução que estava causando esse erro.


Isso é o que eu usei!

public class SMSListener extends BroadcastReceiver {

    // Get the object of SmsManager
    final SmsManager sms = SmsManager.getDefault();
String mobile,body;

    public void onReceive(Context context, Intent intent) {

        // Retrieves a map of extended data from the intent.
        final Bundle bundle = intent.getExtras();

        try {

            if (bundle != null) {

                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                for (int i = 0; i < pdusObj.length; i++) {

                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                    String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                    String senderNum = phoneNumber;
                    String message = currentMessage.getDisplayMessageBody();
                     mobile=senderNum.replaceAll("\\s","");
                     body=message.replaceAll("\\s","+");


                    Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + body);


                    // Show Alert
                    int duration = Toast.LENGTH_LONG;
                    Toast toast = Toast.makeText(context,
                            "senderNum: "+ mobile+ ", message: " + message, duration);
                    toast.show();

                } // end for loop
            } // bundle is null

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception smsReceiver" +e);

        }
    }
}




android android-emulator intel