Como corrigir: "O HAX não está funcionando e o emulador é executado no modo de emulação"


141

Questão é

Eu recebo "HAX não está funcionando e o emulador é executado no modo de emulação", isso está relacionado à instalação do Intel x86 Emulator Accelerator (HAXM) e à execução de avd com cpu definida como CPU Intel Atom (x86)? E mesmo que o AVD pareça mais rápido após a instalação do HAXM, essa mensagem indica que o desempenho do AVD está prejudicado. Deve ser corrigido e, em caso afirmativo, como?

Estou executando no mac os x 10.9.1.

Listando o que está instalado no meu sistema via android sdk manager:

  • Ferramentas
    • Ferramentas do Android SDK Rev 22.3
    • Ferramentas da plataforma SDK do Android rev 19.0.1
    • Ferramentas de compilação do SDK do Android Rev 19.0.1
    • Ferramentas de compilação do SDK do Android Rev 19

==

  • Android 4.4.2 (API 19)
    • Plataforma SDK
    • Imagem do sistema ARM EABI v7a
    • Imagem do sistema Intel x86 Ato
    • APIs do Google
    • Fontes para Android SDK

==

  • Extras
    • O Intel x86 Emulator Accelerator (HAXM) E EU TAMBÉM executamos o instalador do dmg também e instalei o hot fix, depois que eu descobri.

Configuração AVD

  • Plataforma 4.4.2
  • API Nível 19
  • CPU Intel Atom (x86)

Depois de executar o avd:

(ruby-2.0.0-p353) .android   $ tools/emulator -avd 1AVD -wipe-data -no-boot-anim -cpu-delay 0

eu recebo o seguinte e o emulador eventualmente carrega

emulator: The memory needed by this VM exceeds the driver limit.

HAX is not working and emulator runs in emulation mode

Eu recebi esse erro, mas meu emulador já estava em execução, então meu problema real era que o destino do Visual Studio era o iPhone, em vez de Qualquer CPU , que corrigia minha implantação em um simulador.
213 Jaider

Respostas:


200

Sim, deve ser corrigido, o HAXM não está funcionando. Quanta RAM está definida para uso dentro da sua configuração do AVD?

768M é um bom número para ele, mas o mais importante é que esse número deve ser menor ou igual ao uso de memória que você definiu durante a instalação do HAXM. Você pode iniciar sua instalação novamente para modificá-la.


9
obrigado @ ph0b, é isso, o HAXM foi instalado com 1024 de alocação de memória e minha instância avd tinha alocação de memória definida em 1907. obrigado por apontar isso.
precisa saber é o seguinte

44
O instalador do HAXM sugeriu um padrão de 1 GB, mas o Nexus 5 AVD está configurado para usar 1536. Coloque-o novamente em 1 GB e pronto!
aalaap

14
Obrigado. Para aqueles que estavam se perguntando, o local do arquivo do instalador do HAXM está localizado na sdk/extras/intelpasta do seu pacote ADT. Colocar o cursor na entrada HAXM no seu AVD Manager revelará a localização exata.
Koh

2
@zhelon, aparentemente, a única maneira de configurar o HAXM é executar o instalador novamente.
precisa saber é o seguinte

23
Se você estiver usando o Windows e o Android Studio, faça o seguinte. No Android Studio: Ferramentas> Android> AVD Manager> Seu dispositivo> Mostrar configurações avançadas> Defina a RAM para o tamanho preferido. No Painel de controle> Programas e recursos> Intel Hardware Accelerated Execution Manager> Alterar> Definir manualmente> Definir para o tamanho preferido.
Neurotransmissor

66

Se você estiver em um Mac, poderá instalar haxmusando o homebrew via cask, uma extensão interna (a partir de 2015) que permite a instalação de aplicativos de desktop e não de código aberto (por exemplo, chrome, firefox, eclipse etc.):

brew cask install intel-haxm 

Android Studio

Se você estiver usando o Android Studio, poderá obter o mesmo resultado no menu ToolsSDK Managere, na guia SDK Tools , marque a caixa de seleção do Intel x86 Emulator Accelerator (instalador HAXM) e clique em Ok.


49

A maneira que eu resolvi isso é definindo o limite de memória AVD e a memória HAXM com tamanho igual a 1 GB = 1024 MB. O AVD não pode ter um limite de memória mais alto que o HAXM.

1. Configurando a memória HAXM para 1024 M

A única maneira de alterar a memória HAXM é instalando-a novamente. Eu fiz isso usando o terminal. Localize Hardware_Accelerated_Execution_Manager na sua máquina. Em seguida, altere o diretório dessa pasta para executar o script de instalação.

cd ~/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

-OR-

cd ~/Library/Developer/Xamarin/android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager

Pode ser necessário alterar as permissões:

sudo chmod 755 "HAXM installation"

Então:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2. Configurando o dispositivo virtual do mesmo tamanho com o limite de memória HAXM

insira a descrição da imagem aqui

Isso funciona para mim. Boa sorte!


2
Isso funcionou para mim também. Se você está procurando para a tela de configuração de AVD, é em Ferramentas> Android> AVD Gerente
stephenspann

2
Se você quiser ter mais de um AVD em execução ao mesmo tempo, os HAXM necessidades RAM máximo para ser o total para todos os AVDs em execução, ou seja, duas AVDs @ 1024MB = 2048MB, então:$ sudo ./HAXM\ installation -m 2048
Jason Hartley


20

Para Windows.

Em Android Studio:

Ferramentas > Android > AVD Manager > Seu dispositivo > Ícone de lápis > Mostrar configurações avançadas > Memória e armazenamento > RAM > Defina a RAM para o tamanho preferido.

Em Control Panel:

Programas e recursos > Gerenciador de execução acelerada por hardware Intel > Alterar > Definir manualmente > Defina a RAM para o tamanho preferido.

É melhor que os tamanhos de RAM definidos nos dois locais sejam os mesmos.


2
+1 para explicar o local exato para definir esses valores. Muitas respostas na internet assumir um nível de conhecimento que o leitor, como eu, não têm sempre :-)
MikeKulls

4

Verifique a versão mais recente do Has no site da Intel e instale-a. Deixe o aríete no tamanho recomendado "predefinido 2048" e tente executar o aplicativo. As coisas devem funcionar bem.


2

Sim, deve ser corrigido, o HAXM não está funcionando.

O HAXM às vezes funciona; atualmente, a experiência com o HAXM é esporádica entre plataformas.

Por exemplo, eu tenho o iMac do final de 2009 executando o processador 10.8.5 e i7 a 2.8Ghz, o SDK 22.6 do Android com todos os presentes atualizados nesta manhã (05/05/14). O API17 criará emuladores com aceleração HAXM nesta máquina iMac, o API19 é eliminado.

Também tenho o MBP 15 "Retina no início de 2013 executando o processador 10.8.5 e i7 a 2.7Ghz, SDK 22.6 do Android com todas as novidades atualizadas esta manhã (05/05/14). O API17 criará emuladores com aceleração HAXM, o API19 também funciona muito bem .

O mesmo vale para o meu (pessoal) MBP Retina 13 "de final de 2013 com dual-core i5 e Mavericks.

Há algo acontecendo na virtualização no nível do chip em CPUs mais antigas (até i7) que as novas imagens API19 x86 precisam para o HAXM funcionar. Se o API19 não estiver funcionando, experimente o API17 ou mesmo 16.


2

No seu mac Abra o localizador e Ctr + Alt + G depois digite este/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

você encontrará o instalador do acelerador do emulador, execute-o e configure a memória que você precisa para modificá-lo e tente novamente para executar seu aplicativo Android


A sequência de teclas acima não funcionou para mim, mas apenas olhou para o IntelHAXM_<version name>.dmgarquivo no 'SDK / extras intel /' dir e correu o instalador de lá (Mac OSX)
kip2

2

se você estiver executando o processador Intel, verifique se o instalador do HAXM (Intel® Accelerated Execution Manager) está instalado via SDK Manager, marcando esta opção no SDK Manager. e execute o instalador HAXM ext através do caminho abaixo

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

verifique também o tamanho da ram alocado durante a instalação do HAX para que ele se ajuste ao tamanho da ram do seu emulador.

Este vídeo mostra todas as etapas necessárias que podem ajudá-lo a resolver o problema.

Este vídeo também o ajudará se você enfrentar problemas após instalar o HAXM.


1

Aumente o tamanho da ram alocado durante a instalação do HAX, para caber exatamente ou um pouco mais em espaço superior ao tamanho da ram do emulador que você deseja iniciar no modo "Intel x86 Emulator Accelerator (HAXM)",

Depois de ter sucesso com isso, agora você pode ver isso no console / log

insira a descrição da imagem aqui



1

A solução do geckob funciona perfeitamente. Cuidado: O HAXM que você fornece é usado em todos os dispositivos em execução. Portanto, se você estiver testando em um telefone e tablet ao mesmo tempo e cada um tiver um requisito de 1G. Em seguida, verifique se o HAXM atribuído é pelo menos 2G.


1

Faça o download do HAXM no SDK Manager

Abra seu Gerenciador de SDK no Android Studio, clique no ícone mostrado na captura de tela.

insira a descrição da imagem aqui

Clique em "Iniciar o Standalone SDK Manager" na caixa de diálogo "Configurações padrão".

insira a descrição da imagem aqui

Verifique o nó "Extras> Intel x86 Emulator Accelerator (instalador do HAXM)" e continue com o download do HAXM.

insira a descrição da imagem aqui

Instalando ou modificando o HAXM

Agora você pode acessar com a instalação (ou modificar o installtino existente) do HAXM acessando o local do download. Digite este caminho em "executar"

% localappdata% \ Android \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager

e clique duas vezes no arquivo "intelhaxm-android.exe"

Você pode aumentar o tamanho da memória alocada ao HAXM enquanto modifica a instalação existente do HAXM. Eu tenho uma máquina com 32 GB de RAM e gostaria de iniciar vários AVDs ao mesmo tempo (para testes automatizados etc.), então aloquei 8 GB ao HAXM.

Embargo

Se você estiver executando um AVD de 1 GB e alocado 2 GB ao HAXM, não poderá executar outro AVD com RAM superior a 1 GB. Certifique-se de que o Android Device Monitor não esteja sendo executado quando você estiver modificando ou instalando o HAXM (apenas para evitar surpresas).

insira a descrição da imagem aqui

Essas etapas são testadas na plataforma Windows, mas geralmente também podem ser aplicadas a outras plataformas com pequenas modificações.


1

Meu problema era que eu não podia mais executar um emulador que funcionava porque havia encerrado o aplicativo emulador, mas o processo não estava totalmente concluído, então estava tentando iniciar outro emulador enquanto o anterior ainda estava em execução. Em um Mac, tive que usar o Monitor de Atividade para ver o outro processo e matá-lo. Passos:

  1. Abra o Monitor de Atividade (em Utilitários ou usando Command + Space)
  2. Localize o nome do processo, no meu caso, qemu-system ...
  3. Selecione o processo.
  4. Force o processo a sair usando o botão 'x' no canto superior esquerdo.
  5. Não precisei usar 'Force Quit', apenas o simples 'Quit', mas você pode usar qualquer um.

1

No meu caso, esse erro foi corrigido quando eu defini a memória HAXM igual à memória AVD. Memória HAXM 1024 MB = memória AVD 1024 MB

Hax is enabled
Hax ram_size 0x40000000
HAX is working and emulator runs in fast virt mode.

Até este ponto, o erro deve ser corrigido.

Agora estou listando meu ambiente específico para o caso de ser de alguma ajuda para alguém que usa o OS X.

OS X El Capitan 10.11.4

MacBook (13 polegadas), Intel Core 2 Duo de 2 GHz, 4 GB de RAM.

Android Studio 2.1

Marshmallow (23) x86 não passou na tela piscante do ícone do Android por até horas.

O Lollipop (22) x86 passou pela tela piscando do ícone do Android e depois mostrou

  • Iniciando o Android (otimizando x de y aplicativos)
  • Iniciando o Android (Iniciando aplicativos)
  • Iniciando o Android (Atualizando o banco de dados de contatos)
  • Iniciando o Android (Finalizando a inicialização) e permaneceu preso aqui por horas .

KitKat (19) x86 funcionou com sucesso e eu pude instalar o hello world lá.


isso é uma resposta? @zeeawan
GnrlBzik 5/05

Sim, a memória HAXM 1024 MB = a combinação de memória AVD 1024 MB faz com que o hax comece a funcionar. Além disso, esta resposta aborda como o emulador começou a trabalhar para mim no OS X.
zeeawan

Precisa de mais narrativa, eu acho.
GnrlBzik

Então, você está dizendo que corrigiu o erro, mas ainda tem problemas com o emulador demorando anos para inicializar?
Sam

Tudo bem com KitKat (19) x86.
zeeawan

0

Abra novamente a configuração do seu dispositivo AVD. editando o dispositivo no gerenciador AVD. prossiga para selecionar a versão do AVD Android. No painel direito, uma recomendação é exibida, siga essa recomendação e tudo será corrigido.


0

A memória padrão atribuída ao HAX é 1024 MB. E o emulador tem 1536MB aparentemente para o Nexus 5x api 25.

se você estiver usando o Android Studio,

  • basta ir a ferramentas -> gerenciador AVD.
  • Em seguida, selecione o emulador e clique no botão lápis à direita para editar.
  • Vá para configurações avançadas na nova janela e altere o valor da RAM para 1024

Funciona como um encanto. :)

captura de tela do android studio

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.