Não é possível executar o emulador no Android Studio

96

Acabei de instalar o Android Studio e tentei fazer um teste. Quando tento executar meu aplicativo, recebo a seguinte mensagem de erro

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

Alguém sabe como consertar isso ????

Ted Pottel
fonte
1
Confira esta resposta stackoverflow.com/questions/9712605/…
Psypher
@Ted pottel, alguma das respostas abaixo respondeu à sua pergunta? Em caso afirmativo, clique na marca de seleção ao lado dela.
Harris

Respostas:

27

É possível que você realmente não tenha imagens do sistema. Verifique $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7anovamente se existe e se não está vazio. Se eles realmente estiverem faltando - instale / reinstale com o gerenciador de SDK.

tse
fonte
2
Tenho dois problemas: 1: Não consigo encontrar $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a, 2: Como reinstalar um dispositivo virtual usando o gerenciador de SDK
Musa Haidari
Lendo sua resposta, no entanto, eu poderia fazer uma solução alternativa, que era criar um novo dispositivo virtual e o problema não ocorreu para o novo
Musa Haidari
4
No SDK Manager, certifique-se de verificar "Mostrar detalhes do pacote" para que possa ver quais imagens do sistema estão instaladas e, se não, instale-as
Martyn Davis
21

Vá para Ferramentas | Android | AVD Manager

Clique na seta na coluna Ações à direita (onde está a mensagem de erro)

Escolha Editar

Deixe a seleção padrão (para mim, MNC x86 Android M)

Clique Próximo

Clique em Terminar

Ele salva seu AVD e o erro desapareceu da última coluna. E o emulador funciona bem agora.

Harris
fonte
15

Acabei de consertar isso. Espero que isso ajude outras pessoas. (Problema como no Android Studio v2) Este problema é para emuladores de braço. Neste exemplo, estou usando armeabi-v7a API 16

A correção consiste em três etapas:

Etapa 1: Abra o gerenciador sdk e certifique-se de ter instalado o ARM EABI v7a System Image

Etapa 2. Este é o caso óbvio de adicionar a localização de sdk às variáveis ​​do sistema.

Clique com o botão direito no ícone "Este PC" na área de trabalho e, em seguida,

Properties -> Advanced system settings -> Environment Variables... Em seguida, adicione o caminho para sdk como novo para a seção de variáveis ​​do sistema usando o nome da variável ANDROID_SDK_ROOT.

Etapa 3. Reinicie o Android Studio para que as alterações sejam registradas. Depois de corrigir o ANDROID_SDK_ROOTproblema é indefinido, o emulador ainda não consegue encontrar os arquivos do kernel, embora possa ver que o gerenciador sdk o instalou no

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

O motivo é uma confusão entre o local onde o gerenciador sdk instala o arquivo kernel e o local que o emulador está procurando.

Se você abrir seu config.ini (Android Studio -> AVD Mananger -> "Show On Disk") para seu emulador, você verá a seguinte linha:

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

(ou seja, \ path-to-sdk \ add-ons \ addon -....)

Em vez de alterar este valor no arquivo config.ini, copiei

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(arquivo de kernel do gerenciador de pasta sdk instalado)

para

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

E esse era o arquivo de kernel ausente. Você pode executar o emulador. (Você precisará fechar o Android Studio e reabri-lo novamente) Dê algum tempo ao emulador, pois ele é 10 vezes mais lento em comparação com o x86. (O meu demorou cerca de 5 minutos para começar)

Asi Mugrabi
fonte
Uh, onde está o 'config.ini para seu emulador'?
Jay
Android Studio -> AVD Mananger -> "Mostrar no disco". Editando a resposta.
Asi Mugrabi
Esta é a resposta que realmente funcionou para mim, no meu caso, esta foi minha linha editada:image.sysdir.1=system-images\android-16\default\armeabi-v7a
yvesmancera
Isso funcionou para mim no emulador do Nexus 4. Teve de atualização image.sysdir.1para `system-images \ android-15 \ google_apis \ armeabi-v7a`
galho
10

Resolvi o problema executando "C: \ Arquivos de programas \ Android \ android-sdk \ AVD Manager.exe" e consertando meu dispositivo quebrado.

airo
fonte
5

Resposta curta : tente criar a mesma imagem usando a velha escola <AndroidSDK>\AVD Manager.exe.

Trabalhando no Android Studio, rodando todas as ferramentas integradas, ficou natural para mim não usar os gerenciadores antigos (AVD / SDK).

No meu caso, tive esse problema quando usei o novo (integrado) AVD Manager para criar dispositivos com imagens de sistema antigo (API 11 e inferior, como testei).

Quando tentei usar a ferramenta AVD Manager da velha escola (localizada em <AndroidSDK>\AVD Manager.exe) para criar essas imagens de dispositivos antigos, tive sucesso.

Luan
fonte
2
Obrigado pela sugestão - parece que a ferramenta autônoma sabe como configurar as coisas para as plataformas mais antigas. No OS X / MacOS: ~/Library/Android/sdk/tools/android avd.
neuralmer
4

Ei, acabei de encontrar o mesmo problema que você, o terceiro link do google me trouxe a este trecho de código que gera o erro,

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's configuration is missing a kernel file!!" );
            const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
            if (sdkRootDir) {
                derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
                        "%s" PATH_SEP "system-images" PATH_SEP
                        " sub directories", sdkRootDir, sdkRootDir);
            } else {
                derror( "ANDROID_SDK_ROOT is undefined");
            }
            exit(2);

para o qual a pessoa escreveu:

"/ * Se o nome da imagem do kernel terminar em" -armv7 ", então mude o tipo de cpu * automaticamente. Esta é uma abordagem de homem pobre para o gerenciamento de configuração *, mas deve nos permitir superar a construção de imagens de sistema ARMv7 * com a passagem dex preopt "

Então, voltei e baixei a versão x86 intel atom para meu nível de API desejado e consegui ativar o emulador sem o erro. Espero que ajude você também ...

Brandon
fonte
2

Normalmente, o erro ocorrerá devido a um emulador AVD inadequado para o tipo de aplicativo para o qual você está desenvolvendo. Por exemplo, se você estiver desenvolvendo um aplicativo para um wearable, mas estiver tentando usar um emulador de telefone para executá-lo.

M Muli
fonte
2

Eu tive o mesmo erro. A solução para mim foi mudar o caminho ANDROID_HOME . Primeiro, dei uma olhada em tools-> android-> sdk manager do Android Studio. Nessa janela, podemos ver o caminho onde o Android Studio procura o SDK: imagem

Em seguida, abri um shell CMD do Windows, executei:

echo %ANDROID_HOME%

mas o caminho era diferente para o ANDROID STUDIO CONFIGURATION da primeira etapa.

A solução foi mudar o ambiente do usuário, do ANDROID_HOME, para o da primeira etapa: imagem

Finalmente fechei o shell cmd e abri outro shell cmd para executar:

echo %ANDROID_HOME%

o caminho foi atualizado e pude rodar meu emulador perfeitamente.

Hector Pasarin
fonte
1

No meu caso (Windows 10), o motivo foi que me atrevi a descompactar o SDK do Android em uma pasta não padrão. Quando mudei para o padrão c: / Users / [nome de usuário] / AppData / Local / Android / Sdk e alterei os caminhos no Android Studio e variáveis ​​do sistema, ele começou a funcionar.

Lukas Hanacek
fonte
1
  • Abra o Android Studio.
  • Vá para configuração> Configuração do sistema> Android SDK
  • Obtenha o "Android SDK Location".
  • Defina a variável de ambiente ANDROID_SDK_ROOT com este valor.

Funcionou para mim e estou no Windows 10 e no Android Studio 2.3.3

3lokh
fonte
1
  1. Vá para "Editar as variáveis ​​de ambiente do sistema".
  2. Clique no botão Novo e digite "ANDROID_SDK_ROOT" no nome da variável e digite o caminho completo do android sdk no valor da variável. Clique em ok e feche.
  3. Atualize o AVD.
  4. Isso resolverá o erro.
Ritika Ranjan
fonte
-1

Uma abordagem comum a seguir para resolver esse problema.

1. VERIFIQUE seu gerenciador de SDK executando a partir de seu estúdio Android e a pasta stand alons sdk executando ./android.shajuda a encontrar pacotes quebrados

  1. Tente instalar imagens do emulador do sistema com suporte da API do Google em vez do Intel. Assim como, resolvi meu problema encontrando outra imagem do sistema.

  2. Experiência em virtulação baseada em KVM sugerida pelo Google para Linux

Daniel Adenew
fonte