Erro do emulador: está faltando na configuração deste AVD um arquivo do kernel

183

Esse problema foi descoberto quando tentei executar o emulador do Android no Eclipse. Não consigo descobrir o que aconteceu. Pesquisei online a solução, mas ela parecia vaga e não entendi claramente. Eu estava seguindo as etapas para instalar o AVD de acordo com os sites e não consigo descobrir o que perdi. Por favor, explique-me nas etapas a seguir.

shoujo_sm
fonte
mesmo problema: stackoverflow.com/questions/8190820/scala-android-newbie - criar um novo AVD
zapl
1
Em um mac ainda não conseguiu iniciá-lo; usando um reparo na AVD trabalhou para mim stackoverflow.com/a/15971119/664220
Ronnie
reiniciar o Eclipse depois de instalar a imagem do ARM e criar um novo AVD funcionou para mim.
Simon
Talvez este link possa ajudar: developer.android.com/tools/help/avd-manager.html
Abhijeet

Respostas:

254

A "Imagem do sistema ARM EABI v7a" deve estar disponível. Instale-o pelo gerenciador do SDK do Android: Gerenciador de SDK para Android

Outra dica (veja aqui ) - com

  • Ferramentas do Android SDK rev 17 ou superior
  • Android 4.0.3 (API nível 15)
  • usando SDK rev 3 e System Image rev 2 (ou superior)

você pode ativar a emulação de GPU para obter um emulador mais rápido: insira a descrição da imagem aqui

Nota: De acordo com o comentário do you786, se você criou o emulador anteriormente, é necessário recriá-lo, caso contrário, isso não funcionará.

Alternativa 1 A
Intel fornece o " gerenciador de execução acelerada por hardware da Intel ", que é um emulador baseado em VM para executar imagens X86 e também é servido pelo Android SDK Manager. Veja um tutorial para o emulador da Intel aqui: HAXM acelera o emulador do Android . Roman Nurik postou aqui que o emulador da Intel com o Android 4.3 é "muito rápido".

Alternativa 2
Nos comentários do post acima, você pode encontrar uma referência ao Genymotion, que afirma ser o "emulador Android mais rápido para teste e apresentação de aplicativos". O Genymotion é executado no VirtualBox. Veja também o site no Google+ , esta postagem de Cyril Mottier e este guia no reddit .

Alternativa 3
Nos fóruns do XDA, eu li sobre o MEmu - o mais poderoso emulador Android para PC, melhor que o Bluestacks . Você pode encontrar o emulador aqui . Isso me leva a ...

Alternativa 4
... esta entrada no XDA-Forum: Como usar THE RÁPIDO! BlueStack como seu emulador de desenvolvimento alternativo para Android . Você pode encontrar o emulador aqui .

ChrLipp
fonte
1
Infelizmente, travar em certas placas da ATI quando a emulação de GPU está ativada - ansioso por um emulador atualizado.
precisa
23
Eu descobri que tinha que excluir o emulador e recriá-lo após a instalação para resolver esse problema.
usar o seguinte comando
3
@ you786 sim é importante para recriá-lo
Bobs
1
Fiz tudo maneira possível, mas seu simulador ainda lá enquanto o lançamento
VISHNU GARG
Veja minha resposta abaixo.
Marc Rochkind 22/09
22

Outro motivo para você obter esse erro é que o Eclipse não consegue encontrar o arquivo correto.

Confira onde o Eclipse está procurando seus arquivos SDK. Você pode fazer isso na linha de comando. Abaixo está um exemplo do prompt de comando do Windows para um avd que eu criei e nomeei 'SonyTabletS':

c:\Program Files (x86)\Android\android-sdk\tools> emulator @SonyTabletS -verbose

A primeira linha retornada mostra onde o eclipse está procurando os arquivos SDK e será algo como:

emulator: found ANDROID_SDK_ROOT: C:\Program Files (x86)\Android\android-sdk

Verifique se o local está correto.

No meu caso, ANDROID_SDK_ROOTfoi inicialmente definido incorretamente no meu diretório pessoal. Isso ocorre porque eu a defino dessa maneira, seguindo cegamente as instruções de instalação do Sony Tablet S SDK e adicionando uma ANDROID_SDK_ROOTvariável de ambiente com o caminho incorreto.

KCD
fonte
No meu caso, o Android \ android-studio \ sdk foi assumido pela localização ANDROID_SDK_ROOT enquanto estou executando o emulador da pasta Android \ android-sdk. Depois que ele aponta corretamente para Android \ android-sdk, ele funciona.
Noel aye
Foi isso para mim. Meu ambiente de construção usa um ANDROID_SDK_ROOT que não consigo atualizar facilmente. A correção foi iniciar um prompt de comando limpo e definir ANDROID_SDK_ROOT para o correto e iniciar o gerenciador sdk a partir daí.
Doug Coburn
Verifique se você não tem acidentalmente duas cópias do SDK instaladas. Se você é como eu, estava instalando a "Imagem do sistema ARM EABI v7a" em uma cópia, mas o AVD estava tentando encontrá-la na outra cópia. Eu removi uma das minhas cópias do SDK e, em seguida, meu emulador foi iniciado.
Sffc
No meu caso, tenho minha pasta SDK apontando para o diretório correto.
Neon Warge
16

Minha história, o Eclipse queria um arquivo chamado " kernel-ranchu" na pasta de imagem do sistema ( /path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a).

emulador: ERRO: A configuração deste AVD está faltando um arquivo de kernel! Verifique se o arquivo "kernel-ranchu" está no mesmo local que a imagem do sistema.

emulador: ERRO: ANDROID_SDK_ROOT está indefinido

Na pasta de imagens do sistema, havia um arquivo chamado " kernel-qemu". Eu apenas o renomeei como " kernel-ranchu" e funcionou ...

jptsetung
fonte
4
No meu caso, foi o contrário
urnenfeld
15

Eu tive o mesmo problema. No meu caso, aconteceu que eu havia instalado outra versão do sdk ao lado da versão fornecida pelo Android Studio. Alterar minha variável de ambiente ANDROID_SDK_ROOT para o valor original a corrigiu para mim.

nerdinand
fonte
1
É importante observar que esta é uma resposta igualmente válida como a resposta principal no caso em que o SDK foi instalado anteriormente antes do Android Studio. O problema é que o Android Studio deve perceber que ANDROID_SDK_ROOT já está definido para um local alternativo e avisar o usuário durante a instalação.
Núcleo
O núcleo está correto. Hoje mudei do Eclipse para o Android Studio e foi isso que corrigiu o problema para mim.
Pikamander2
11

Aqui está a minha história. Em 'Ações' no gerenciador do AVD, vi os detalhes do AVD que não estava funcionando. Rolando para baixo, encontrei a linha:

image.sysdir.1: add-ons\addon-google_apis-google-16\images\armeabi-v7a\

Naveguei para este arquivo em:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

Eu descobri que não havia arquivo de kernel. No entanto, encontrei um arquivo do kernel em:

C:\Users\XXXX\AppData\Local\Android\sdk\system-images\android-16\default\armeabi-v7a

Então eu copiei e colei de volta em:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

O AVD então funcionou.

CKP78
fonte
Obrigado, isso resolveu! Eu acho que isso tem que ser um bug ou sth porque é um comportamento muito estranho
Hugo
7

Abra o AVD Manager no modo Administrador Selecione VM e clique em editar, clique em OK Iniciar VM.

Nota do editor : No modo administrador, ele quis dizer Botão direito do mouse> Executar como administrador nas plataformas Windows.

user3313044
fonte
O que / onde está o 'modo de administrador'?
precisa saber é o seguinte
Não é possível encontrar VM, para Mac OS
Frank fang
4

Se você sabe que o arquivo do kernel está instalado na sua máquina, o problema está sendo obtido no emulator.exe para encontrá-lo.

Minha correção foi baseada na postagem do usuário2789389. Eu poderia iniciar o AVD no AVD Manager, mas não na linha de comando. Então, usando o AVD Manager, selecionei o avd que queria executar e cliquei em "Detalhes". Isso me mostrou o caminho para o arquivo de definição avd. Dentro de uma pasta com o mesmo nome, ao lado desse arquivo .avd, encontrei um arquivo config.ini. No ini, encontrei a seguinte linha:

image.sysdir.1=system-images\android-19\default\armeabi-v7a\

Procurei na pasta C: \ Users \ XXXX \ android-sdks \ system-images \ android-19 e descobri que o caminho do image.sysdir.1 era inválido. Eu tive que remover a subpasta "padrão", alterando-a para o seguinte:

image.sysdir.1=system-images\android-19\armeabi-v7a\

Salvei o ini e tentei novamente iniciar o AVD. Isso resolveu o problema!

BuvinJ
fonte
Isso não foi corrigido. No meu caso, tenho a imagem do sistema na subpasta padrão.
Neon Warge
Você não precisa votar em mim porque tem um problema diferente! Isso não faz minha resposta errada.
precisa saber é o seguinte
Você votou em todos os outros posts aqui também, porque eles não resolveram seu problema?
precisa saber é o seguinte
Isso corrigiu o problema para mim, estou executando no Mac e o caminho estava apontando para image.sysdir.1 = add-ons / addon-google_apis-google-16 / images / armeabi-v7a, alterando para system-images / android -16 / default / armeabi-v7a resolveu o problema
Felipe junho
3

Verifique se você também configurou corretamente um dispositivo emulado. O Android Studio pode vir com um que aparece na lista de dispositivos emulados, mas não está configurado para funcionar com a versão do SDK que você está usando.

Tente criar um novo dispositivo emulado no AVD Manager (Ferramentas-> Android> AVD Manager) e selecione-o como destino.

kmantel
fonte
Tentando seguir esse caminho, deixe-me saber que o HAXM não estava realmente instalado, apesar de mostrar que estava. Fui solicitado a instalar o Intel HAXM.
Lodlaiden 9/07/19
2

Instalei o Android SDK manager e o Android SDK ontem, e também recebo esse erro quando tentei executar o emulador do Android imediatamente. Mas, neste momento, esse erro desaparece, acho que reiniciar o sistema quando o SDK estiver instalado pode resolver esse problema.

Jack Hu
fonte
2

Um pensamento inteligente singular me ocorreu após um longo dia de reparo / reconstrução / atualizações do SDK / NDK e JDK. Os vários ambientes precisam ser examinados, pois a correção para o meu arquivo de núcleo ausente do AVD 'GalaxyS3' era expandir a referência de imagens do sistema para absoluta.

image.sysdir.1 = C: \ Android \ sdk \ imagens de sistema \ android-19 \ armeabi-v7a \

A adição de "C: .... sdk \" à entrada 'image.sysdir.1 =' no 'espaço de trabalho' .android \ avd \ GalaxyS3.avd \ config.ini resolveu o problema (por enquanto).

user2789389
fonte
2

Atualizei meu SDK do Android para a versão mais recente (API 19). Quando tentei executar o emulador com o phonegap 3, a compilação foi bem-sucedida, mas ocorreu o mesmo problema.

No gerenciador de AVD havia um dispositivo existente, no entanto, seus parâmetros eram todos desconhecidos. Certamente isso ocorre porque eu desinstalei a versão antiga do sdk (API 17) que retorna um segundo erro ao tentar remover o dispositivo. Com a mensagem: "o dispositivo já está em execução"

Para resolver o problema, fui ao local do AVD em ~ / .android / avd / e removi manualmente o arquivo directory.avd e device.ini do dispositivo. Finalmente, no gerenciador de dispositivos, criei um novo AVD fornecido pela API mais recente.

Isso permitiu que o phonegap construa e execute o emulador com êxito

Eu espero que isso ajude

Dia bom

snaphuman
fonte
2

Após a resposta aceita por ChrLipp usando o Android Studio 1.2.2 no Ubuntu 14.04:

  • Instale o pacote "ARM EABI v7a System Image" no gerenciador de SDK do Android.
  • Exclua o dispositivo virtual não funcional.
  • Adicione um novo dispositivo com a Interface Binária de Aplicativo (ABI) como armeabi-v7a.
  • Inicialize no novo dispositivo.

Isso funcionou para mim. Tente reiniciar o sistema se não estiver funcionando para você.

manyu
fonte
2

Veja minha resposta para o ambiente Android Studio , Mac e “PANIC: Programa de mecanismo de emulador ausente para a CPU 'arm'”. .

Para resolver esse problema, você precisa especificar o -kernelcaminho manualmente. ie

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/android-16/default/armeabi-v7a/kernel-qemu

Lembre-se de alterar o nome do emulador Galaxy_Nexus_Jelly_Bean_API_16para o seu próprio nome.

Abaixo o comando é verificar os emuladores disponíveis para a linha de comando.

$ ~/Library/Android/sdk/emulator/emulator -list-avds

E também, verifique se o caminho do emulador está correto, ou seja, aquele localizado em ~/Library/Android/sdk/emulator/.

shizhen
fonte
1

Tentei o que o ChrLipp sugeriu, mas esse não foi o problema, pois a imagem já estava instalada. O que eu fiz foi executar:

android avd

para iniciar o emulador manualmente. Então parei o emulador e forme esse ponto no

cca emulate android

O aplicativo começou a funcionar, sem o erro "falta de um arquivo do kernel".

Marc Rochkind
fonte
1

Corrigi esse problema apenas adicionando a variável de ambiente ANDROID_SDK_ROOT; no meu caso, ela estava localizada em C: \ Users \ fera \ AppData \ Local \ Android \ sdk

fera
fonte
1

No meu caso, eu tive vários erros, a maioria dos quais foi sobre a configuração incorreta do ANDROID_SDK_ROOT . No final do dia, uma coisa parecia consertar a coisa toda.

Siga o seguinte processo:

Após criar o novo dispositivo emulador no AVD, vá para o menu Ações e clique na seta apontando para baixo, como mostrado abaixo.

insira a descrição da imagem aqui

Clique em Mostrar no disco

Editar Config.ini

Procure por image.sysdir.1

deve ter um valor como este: ** image.sysdir.1 = system-images \ android-28 \ google_apis_playstore \ x86 **

Seu próprio valor pode ser diferente

Agora, corrija o caminho do Android Sdk para criar um caminho completo.

image.sysdir.1 = ** C: \ androidsdk ** imagens do sistema \ android-28 \ google_apis_playstore \ x86 \

Se você notou, o caminho do sdk do Android mostrado acima é diferente do sdk do Android padrão normal, tive que movê-lo para C: / androidsdk para evitar problemas de NDK, pois minha principal casa do usuário no meu PC tem espaços em branco que o NDK pode não suportar.

NOTA: Afastar o diretório SDK de seu diretório padrão é geralmente a causa desses erros que o emulador do AVD fornece, principalmente no que diz respeito ao caminho quebrado e mal configurado. A correção que forneci acima é uma solução rápida; talvez você precise fazer isso sempre que criar um novo dispositivo no AVD Emulator.

Essa correção também deve funcionar ao trabalhar no CMD com cordova.

Akintunde
fonte
0

Só queria compartilhar minha experiência sobre esse problema. Consultando cada uma das respostas aqui, não corresponde à minha situação. Ter uma imagem do sistema para a API do Android 22 causa esse erro e o estranho é que todas as variáveis ​​de ambiente apontam para os diretórios corretos. Isso não faz sentido.

A resposta do @BuvinJ havia esclarecido o problema. Eu verifiquei o caminho descrito em sua resposta e sim, minha cópia da imagem do sistema reside no padrão da subpasta quando olho no diretório do usuário (no Windows).

O estranho é que também há uma pasta android-sdk no ANDROID_SDK_ROOT, então pensei que talvez o Eclipse esteja procurando lá. Procurando nas subpastas, descobri que o diretório se parece com isso:

android-sdk-windows\system-images\android-22\google_apis\armeabi-v7a

Este diretório reside no ANDROID_SDK_ROOT. Também existe outro que reside no diretório de usuário user / XXXX / android-sdk /.

O Eclipse está esperando aqui:

android-sdk-windows\system-images\android-22\default\armeabi-v7a

Apenas alterei o diretório como tal e funciona agora.

Neon Warge
fonte
0

Atualize os seguintes comandos no prompt de comando no Windows:

i) atualização do android sdk --no-ui --all // Atualiza os pacotes do SDK e leva 3 minutos. ii) atualização do Android sdk --no-ui --filter platform-tools, tools // Atualiza as ferramentas da plataforma e seus pacotes. iii) atualização do android sdk --no-ui --all --filter extra-android-m2repository // Aqueles que estão trabalhando com o projeto maven atualizam isso para oferecer suporte à mais recente biblioteca de design de suporte, que incluirá repositório extra maven para android maven.

1) No prompt de comando, ele solicita Y / N. Clique no Y e prossegue com a instalação. 2) Atualiza todos os arquivos Kernel-qemu e comandos qt5.dll. para que o emulador funcione bem sem problemas.

user12654796
fonte
-1

Para mim, a atualização das ferramentas do SDK corrigiu os erros.

Captura de tela dos erros e progresso da atualização

Fazal Arya
fonte
-1

Resolvi isso atualizando as ferramentas SDK Tools e Platform-tools no Android SDK Manager para a versão mais recente.

Alexander Andrade
fonte