Depois de digitar o cordova run android
terminal, estou recebendo este erro:
Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!
Isso acontece após a exportação:
export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'
Antes de exportar, obtive:
Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
Alguma idéia de onde estou errado? Tenho certeza de que esta é a raiz do sdk, por que estou recebendo um caminho de sistema avd quebrado?
1>PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT 1>Emulator Nexus_5X_API_23 cannot be started.
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/usr/local/share/android-sdk]!
ao verificar esse caminho->echo $ANDROID_SDK_ROOT /usr/local/share/android-sdk
. Portanto, o emulador falha mesmo que o caminho esteja correto.Respostas:
Pode haver vários problemas diferentes quando você move o AVD ou SDK para outro diretório, substitui um SDK antigo por um novo ou, de alguma forma, corrompe o SDK.
Abaixo, descreverei todos os possíveis problemas que conheço e mostrarei várias maneiras de resolvê-los.
Estrutura do SDK incompleta / corrompida
Esses 2 erros ocorrem se o emulador não conseguir encontrar o SDK ou se o SDK estiver quebrado.
Portanto, primeiro recomendo remover a
ANDROID_SDK_ROOT
variável. Só é necessário quando o emulador está localizado fora do diretório SDK. Mas, em geral, seu emulador permanece dentro do diretório SDK. E, nesse caso, ele deve detectar o local do SDK automaticamente . Caso contrário, o SDK provavelmente tem uma árvore de arquivos incorreta. Faça o seguinte:Verifique se o diretório SDK tem pelo menos estes 4 diretórios:
emulator
,platforms
,platform-tools
,system-images
. É muito importante! Esses diretórios devem estar presentes. Se alguns deles não existirem, basta criar diretórios vazios.Vá para
<user_home>/.android/avd/<avd_name>
e abraconfig.ini
. Encontre aimage.sysdir.1
propriedade. Aponta para o diretório, dentro do diretório SDK, que contém a imagem real do sistema. Verifique se esse diretório existe e contém arquivos comobuild.prop
,system.img
etc. Se não existir, abra o Gerenciador de SDK e faça o download das imagens do sistema exigidas pelo AVD (veja abaixo).Se tudo estiver configurado corretamente, quando esses erros
ANDROID_SDK_ROOT
devem desaparecer. Se não estiverem, agora você pode tentar configurar aANDROID_SDK_ROOT
variável.Pacotes necessários e HAXM não estão instalados
O próximo problema que você pode enfrentar é que o emulador começa a ser iniciado, mas desliga ou sai imediatamente. Isso provavelmente significa que você não possui todos os pacotes necessários instalados.
Outro erro possível é:
Portanto, para iniciar com êxito qualquer AVD, você deve ter certeza de que pelo menos esses pacotes estão instalados:
E, como mencionei anteriormente, você deve instalar imagens do sistema que seu AVD está usando, por exemplo
system-images;android-25;google_apis;x86
Também recomendo instalar o HAXM no seu sistema manualmente.
Os arquivos Qcow2 referem-se a imagens-base incorretas / inexistentes
O último problema que mencionarei acontece quando você está tentando mover o AVD ou SDK de um computador ou diretório para outro. Nesse caso, você pode receber esse erro:
Existem 2 maneiras de corrigi-lo:
Se você não se importa com os dados que o AVD contém, basta excluir todos os
qcow2
arquivos do diretório AVD (por exemplo, de<user_home>/.android/avd/<avd_name>
). Nesse caso, você obterá uma versão limpa do Android, como após uma reinicialização completa.Se os dados no emulador forem importantes para você, abra todos os
qcow2
arquivos um por um usando qualquer editor HEX (prefiro HxD ), localize o caminho de umimg
arquivo base e altere-o para o correto noOverwrite
modo (para preservar o tamanho do arquivo). Em seguida, selecione o caminho e obtenha seu comprimento em hexadecimal (por exemplo2F
).2F
representa a barra ASCII/
. Coloque-o na posição13
:PS: Não tenho certeza, mas provavelmente existem alguns utilitários como o qemu-img, que permite definir uma imagem base diferente. Bem, para mim é mais fácil editar manualmente o binário.
Agora você provavelmente poderá iniciar com êxito o seu dispositivo virtual Android. Acredito que sim :)
fonte
hw.cpu.arch
no config.initools/bin/sdkmanager "platform-tools"
. Foi uma dor de encontrar o que estava errado por causa desta mensagem de erro estúpido ( "PÂNICO: Não é possível localizar caminho do sistema AVD Por favor, defina ANDROID_SDK_ROOT.") Que não estava dizendo claramente qual era o problema ...No Mac: Eu tinha instalado
android-sdk
usandobrew
, bem como Estúdio Android. De alguma forma, ter 2 instalações estava causando esse problema. Quando eu desinstalei minha instalação de fermentação do sdk usandobrew cask uninstall android-sdk
e adicionei os seguintes vars ao meu ambiente. Funcionou.fonte
android-sdk
durante a instalação do NativeScript. O emulador dispara-se diretamente do Android Studio agora, mas não através NativeScript (tns rodar Android)Isso resolverá seu problema no macOS:
fonte
Removendo o erro ao usar o Android SDK do Homebrew como o SDK padrão
Como o @EFreak eu instalei o android-sdk com o homebrew (um gerenciador de pacotes para Macs). Eu precisava fazer o abaixo para corrigir o erro, porque estava seguindo os tutoriais nativescript e o erro ocorreu. Se você gosta de mim, pretende usar a versão brew sobre a versão android-sdk, use esta resposta (isso permitirá que você use a
tns run android
API nativescripts ) e se quiser o android-sdk padrão do android studio, siga a resposta de @ EFreak.Configurando o Android Studio para usar os SDKs do Homebrew para Android
Basicamente, você só precisa alterar a localização do SDK do Android no Android studio. Primeiro abra um projeto no android studio. Em seguida, abra o Gerenciador de SDK clicando neste botão.
Em seguida, quando surgirem as preferências padrão do gerenciador de SDK do Android, clique em editar ao lado do local do SDK do Android.
Localizando o Android SDK da Homebrew
Em seguida, você precisa realmente atualizar a localização do sdk na tela de configuração dos componentes do sdk, meu
brew
android-sdk estava localizado aqui/usr/local/share/android-sdk
. Você pode encontrar onde o seu está instalado executando, embrew cask info android-sdk
seguida, próximo à parte inferior da saída:O valor da variável
export
edANDROID_SDK_ROOT
(que aqui está/usr/local/share/android-sdk
) é a localização do android sdk no sistema doméstico.Em seguida, clique no botão Localização do Android SDK (identificado como 1 na imagem) e cole na localização do Android SDK da Homebrew.
Em seguida, termine o assistente instalando quaisquer pacotes. Eu precisava excluir e recriar meus emuladores de dispositivos nesta etapa, mas pareceu funcionar muito bem depois disso.
Definindo as variáveis de ambiente do Android SDK para apontar para o Android SDK do Homebrew
Além disso, você pode querer se certificar de que está seguindo a rota do Homebrew para que o script de configurações do perfil tenha as variáveis de ambiente
ANDROID_HOME
eANDROID_SDK_ROOT
definidas para o local do Homebrew no android sdk, caso contrário, o acima não funcionará ainda. Isso pode ser alterado a partir do local Homebrew se você instalou o Homebrew antes de instalar o Android Studio, conforme indicado nesta resposta por @Jamie Armour . Você pode verificar as variáveis de ambiente para o SDK do Android estão definidos corretamente, executandoecho $ANDROID_HOME
eecho $ANDROID_SDK_ROOT
e verificar que ambos mostram a localização Homebrew do Android SDK.Se você precisar alterar os valores ANDROID_HOME e ANDROID_SDK_ROOT, poderá fazer isso nas configurações de perfil no seu Mac, que provavelmente se parecerão com
~/.bash_profile
"~ / .bashrc" ou "~ / .profile" e definidas da seguinte forma:Você precisa alterar os valores de ambas as exportações para os valores adequados do local do SDK para Android do Homebrew e salvar o arquivo. Para verificar se os valores corretos foram gravados, você deve primeiro fechar e abrir o terminal, o que deve executar novamente o arquivo e redefinir as variáveis de ambiente ou pode originar o arquivo executando
source <profile file name>
onde está o arquivo de perfil que você editou e salvou. Em seguida, você pode executar novamenteecho $ANDROID_HOME
eecho $ANDROID_SDK_ROOT
verificar se eles têm o local Android Homebrew sdk.fonte
tns run android.
Isso estava funcionando para mim antes de executar o script de configuração nativescript. O script quebrou um monte de coisas -_-Isso significa que seu caminho para as ferramentas está incorreto. É assim que parece em um mac usando brew. Cuidado com a versão.
No seu caso, parece que você deve executar o seguinte:
fonte
ANDROID_SDK_ROOT
está definido.bash_profile
. Atéecho $ANDROID_SDK_ROOT
dá o caminho correto:/usr/local/Cellar/android-sdk/24.4.1_1
estou usando o macOS com o HomeBrew.Eu tive o mesmo problema no meu Windows 10,
resolvi o meu problema seguindo as etapas abaixo.
abrir Android Studio
- Ferramentas
- Gerenciador de SDK
- copiar Localização do
SDK do Android Localização do SDK do Android
definir variável de ambiente do sistema
ANDROID_HOME e ANDROID_SDK_ROOT
variável de ambiente do sistema
fonte
Eu tive o mesmo problema após a atualização do emulador. O problema foi resolvido após a adição da variável ANDROID_AVD_HOME
Importante: Caracteres não ASCII não podem ser usados no caminho. Por fim, reinstale os dispositivos virtuais ou substitua manualmente o caminho do dispositivo no arquivo Configuration settings.ini, que contém o caminho antigo com caracteres não ascii.
fonte
Executei o Android Studio no Windows 10, configurei ANDROID_HOME e ANDROID_SDK_ROOT em Variáveis de ambiente e ainda recebi o erro.
Acontece que eu esqueci de baixar o dispositivo.
Depois de baixar a "Imagem do sistema ausente", tudo funciona bem.
fonte
No meu caso, foi quebrado porque ANDROID_HOME e ANDROID_SDK_ROOT eram diferentes, então, quando eu configurei ANDROID_HOME para ser o mesmo que ANDROID_SDK_ROOT, ele começou a funcionar.
fonte
A resposta de Oleg Cherrs me levou a uma solução. Como ele mencionou
Encontrei o arquivo * .ini do emulador correspondente no diretório avd. Lá eu modifiquei a entrada "image.sysdir.1". Substituí o parente por um caminho absoluto (anexe o ANDROID_SDK_ROOT na frente). Depois disso, o emulador foi iniciado na linha de comando conforme o esperado.
fonte
C:\Users\edkol\.android\avd
mas não vejo nenhum config.ini - preciso adicionar um? Se sim, onde posso obtê-lo?O diretório Platfoms estava ausente em / usr / local / share / android-sdk .
Criei um diretório vazio chamado plataformas que corrigiu o problema.
fonte
ok eu posso rodar o android do cordova, mudei o ANDROID_HOME para,
fonte
Você deve adicionar o AVD Emulator. Vá para este local:
inicie o AVD Manager e, na segunda guia (Definições do dispositivo), clique no botão "createAVD".
fonte
Estou no Windows 10 e o problema era que o diretório do avd no meu computador tinha caracteres não ASCII.
Aqui está o que fazer:
Execute o cmd como administrador
Execute o seguinte comando:
(Isso criará um link simbólico entre o caminho com caracteres não ASCII e o novo)
Em variáveis de ambiente, adicione
ANDROID_AVD_HOME
variável com valorC:\\.android\avd
.fonte
Acabei de encontrar o problema hoje e consegui resolvê-lo.
Emulador: [140735565005632]: ERRO: android / android-emu / android / qt / qt_setup.cpp: 28: biblioteca Qt não encontrada em / Users / your_user_name / Library / Android / sdk / emulator / lib64 / qt / lib
15:08 Emulador: Não foi possível iniciar '/ Users / your_user_name / Library / Android / sdk / emulator / qemu / darwin-x86_64 / qemu-system-x86_64': esse arquivo ou diretório não existe
A solução foi bem simples. Basta instalar o emulador do Android através do Android Studio => ferramentas => Android => gerenciador do SDK => ferramentas do SDK => selecione Emulador do Android => Aplicar
Estou usando um MacBook Pro no macOS High Sierra e acredito que sua máquina não tem nada a ver com esse problema. Obviamente, o emulador não está instalado ao executar o gerenciador de instalação do Android Studio pela primeira vez, pelo menos para mim, com o Android Studio 3.0.1
Verifique também se os caminhos estão definidos no seu .bashrc ou .zshrc assim:
fonte
Verifique se a imagem do sistema usada pelo seu AVD foi baixada em
$ANDROID_SDK_ROOT/system-images/
fonte
Eu tive o mesmo problema que, após definir as seguintes variáveis de caminho, desapareceu. Nota O caminho do AVD Home é diferente dos outros três.
fonte
NativeScript
Para qualquer pessoa com problemas para iniciar o emulador Android via NativeScript, é provável que os arquivos ANDROID_HOME e ANDROID_SDK_ROOT tenham sido substituídos.
Como eu consegui criar um problema para mim foi instalando o Android Studio para gerar um emulador diferente. Fiz isso depois de já ter instalado o android sdk via home brew.
Portanto, se durante a instalação do NativeScript, você optou por instalar o android sdk via HomeBrew, o NativeScript definirá o seguinte:
Posteriormente, a instalação do Android Studio substituirá esses valores como:
Então, naturalmente, há um conflito com o Android studio e a instalação NativeScript / Brew do android sdk. Remover um ou outro e / ou verificar se a variável env contém o caminho correto deve iniciar o emulador.
fonte
Depois de algum tempo tentando outras "soluções" Googled, a única coisa que funcionou para mim, depois de definir a variável de ambiente ANDROID_SDK_ROOT no Windows, e também adicionar e remover variáveis ANDROID_HOME e ANDROID_SDK_HOME, foi a resposta de Xerox23 - edição config.ini do AVD para codificar o valor de ANDROID_SDK_ROOT na propriedade image.sysdir.1.
Isso estava usando o Android Studio 3.0.1 e o emulador 26.1.4, iniciando o dispositivo virtual a partir do AVD Manager a partir do Android Studio.
fonte
Para máquinas Windows: Depois de tentar um monte de caminho definido, remova o caminho etc. O que finalmente funciona é localizar a pasta
C:\Users\johndoe\.android
e excluí-la. Depois disso, você poderá almoçar no seu Android Studio, solicitará que você baixe e instale um novo AVD e substituirá e criará uma nova pasta e arquivos. Isso resolve o problema.fonte
Para resolver esse problema, tive que instalar o pacote com a imagem do sistema ausente usando o SDK Manager.exe (em "C: \ Arquivos de Programas (x86) \ Android \ android-sdk"). Eu havia notado que a imagem do sistema que eu precisava ("android-23") estava ausente em "C: \ Arquivos de Programas (x86) \ Android \ android-sdk \ system-images".
Depois de executar o SDK Manager.exe e instalar os pacotes apropriados, eu poderia executar o emulador no Android Studio.
Aqui está a solução que funcionou para mim:
https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/creating_an_android_emulator.html
fonte
Siga as etapas abaixo para resolver seu problema
1
2)
3)
fonte
Resolvi esse problema removendo o arquivo
/usr/local/share/android-sdk
, porque esse arquivo foi criado quando tentei com o homebrew.é suficiente ....
fonte
Abra o seu estúdio android e concentre-se na barra de ferramentas.
Vá para Ferramentas> Gerenciador de SDK
Aparência e comportamento> Configurações dos sistemas> Android SDK
Agora, na guia, copie a localização do Android SDK aqui Localização do Android SDK
vá para suas variáveis de ambiente e defina o caminho junto com essas variáveis
variáveis ambientais
fonte
fonte
ANDROID_SDK_HOME é um ponteiro para a raiz do seu arquivo ".android", que por padrão é criado em "C: \ Usuários \ nome \ .android" e NÃO para a raiz da pasta do SDK. Em seguida: - Atribua ANDROID_SDK_HOME à pasta raiz do SDK não funcionará. - Se o caminho do seu arquivo ".android" tiver caracteres não ASCII, ele não funcionará. - A pasta AVD deve estar dentro do seu arquivo ".android" atual.
Então a resposta é esta:
Felicidades.
fonte
Tried 的 小 above 注意! 是 avd 目录 不能 包含 tried Eu tentei todos esses métodos acima e ainda recebo o erro, e me pergunto se é porque meu diretório avd contém caracteres chineses. então eu mudo o diretório avd padrão pelas seguintes etapas, e funcionou. 1. crie uma pasta cujo caminho não contenha caracteres não-ascii 2. copie ou recorte a pasta avd padrão
$HOME/.android
abaixo da pasta que você acabou de criar 3. adicione PATHADNDROID_SDK_HOME
, e o Android studio encontrará avd abaixo de $ ADNDROID_SDK_HOME / .android / avdfinalmente deu certo! :>
fonte
Uma correção se o usuário contiver caracteres não ASCII
Para pessoas que estão recebendo "
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT
", o motivo disso pode ser que seu usuário contenha caracteres não ASCII .Portanto, as pastas SDK e .android com a pasta AVD precisam ser movidas para outra pasta.
Alterando o caminho do SDK:
Abra o Android Studio , vá para configurar e escolha o SDK Manager. Altere o local atual do Android SDK para, por exemplo, "C: \ Android \ Sdk" (ou outro local, apenas não na pasta do usuário que contém caracteres não ASCII) .
Depois disso, adicione as seguintes variáveis de sistema:
Alterando o caminho do AVD:
Para alterar a localização da pasta AVD (normalmente colocada em "
C:\Users\<user name>\.android\avd
"), é necessário alterar a.android
localização da pasta . Primeiro feche o Android Studio e adicione a variável do sistemaANDROID_SDK_HOME
com o caminho para o novo local em que você deseja.android
estar, por exemplo,C:\Android_SDK_HOME
conforme usado em outro exemplo:Depois de adicionar isso, execute o Android Studio . Depois feche novamente. Agora, uma pasta chamada
.android
deveria ter aparecido.A próxima e última coisa que você precisa fazer é definir a
ANDROID_AVD_HOME
variável do sistema. Nesse caso, estará emC:\Android_SDK_HOME\.android\avd
Espero que isso resolva o problema para alguns. :)
fonte
Encontrei esse problema desde que faço React Native desde os primeiros dias. O Google descontinuou as ferramentas da linha de comando e insiste no Android studio. A solução para mim foi remover as ferramentas da linha de comando
rm -rf /usr/local/Cellar/android-sdk
rm /usr/local/bin/android
abra o AS install sdk v6 conforme as instruções https://facebook.github.io/react-native/docs/getting-started.html#1-install-android-studio
faça um novo AVD e ele será iniciado sem erros
fonte
Os erros realmente variam. É útil executar a
./emulator with -verbose
opção, pois mostrará os erros reais.fonte