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, 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.


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.


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)


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.


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.


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 ...


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.


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.


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.


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


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.

-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

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.