Não é possível iniciar o AVD no emulador: biblioteca QT não encontrada

132

Eu sou novo no Android Studio e estou tendo problemas ao usar o emulador. Quando tento executar, ele fica travando, dizendo:

"Não é possível iniciar o AVD no emulador" [6816]: ERRO: ./ android / qt / qt_setup.cpp: 28: biblioteca Qt não encontrada em C: \ Usuários \ Jay \ AppData \ Local \ Android \ Sdk \ emulador \ lib64 \ qt \ lib

Não foi possível iniciar 'C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe': esse arquivo ou diretório não existe

Ativei o VT-x nas configurações do BIOS e ainda estou tendo o problema. Pesquisei bastante e não consigo encontrar uma resposta. Qualquer ajuda será muito apreciada. Alguém pode me dar uma solução?

Captura de tela do erro Instantâneo de log

Jay
fonte
veja minha resposta. Funcionou perfeitamente.
Uddhav Gautam

Respostas:

157

Este parece ser um problema relacionado à atualização recente. Uma solução temporária é iniciar o emulador a partir do /path/to/android-sdk/toolsdiretório na linha de comando.

Consulte https://code.google.com/p/android/issues/detail?id=235461 para acompanhar o problema.

Vuong Pham
fonte
6
Estou executando o emulador do Android / sdk / tools, mas ainda estou recebendo o erro QT.
Gonzalo
3
Eu tive o mesmo problema e esta solução funciona para mim.
Gontard 6/03
2
Últimas atualizações de ontem. A execução no diretório <Android SDK> / tools funcionou para mim, mas também tenho / tools e / platform-tools no meu caminho. Eles deveriam consertar isso.
Sean Aitken
13
O comentário # 25 sobre a questão fixa-lo para mim
Gregriggins36
1
Funcionou para mim, mas tive que usar adicionalmente -use-system-libscomo argumento o diretório emulatorlocalizado no diretório tools .
Rany Albeg Wein
105

Todas as outras respostas não funcionaram para mim, pois o "Android Emulator" não foi instalado com uma instalação padrão do Android Studio. Verifique se você o instalou e tente outras respostas, se necessário.insira a descrição da imagem aqui

Akshar Patel
fonte
2
A instalação do "Android Emulator" também foi corrigida para mim. Depois disso, consegui iniciar o emulador novamente, mas obtive o seguinte erro do HAXM "unknown hax vcpu return 1". Simplesmente reiniciar minha máquina finalmente resolveu todos os problemas. (Veja: stackoverflow.com/a/41867405/2350644 )
user2350644
2
instalar o emulador de dentro do Android Studio também funcionou para mim. Agora também posso executar o emulador na linha de comando.
abhinavgoyal02
3
Realmente muito obrigado, resolveu o meu problema depois de desperdiçar 3 horas :(
Hossam Ghareeb
1
Eu tive o problema de iniciar o emulador no Mac. Ele costumava travar após a inicialização sem nenhuma mensagem. Sua dica me ajudou.
Rostyslav Roshak
3
Isso me ajudou também. Basicamente, com minha nova instalação do Android Studio, depois de executar as atualizações e tentar iniciar uma imagem no emulador pela primeira vez. Este foi o erro. E sim, é bastante lógico que você precisa ter o emulador instalado, se quiser usá-lo. Seria bom se o Android Studio dissesse: "você deseja executar um dispositivo virtual no emulador que fornecemos, mas é necessário instalar esse emulador primeiro, você deseja instalá-lo agora?" ....
morksinaanab
82

Para sistemas Linux ou Mac, você pode adicionar o seguinte a ~/.profile(ou ~/.bashrc):

function emulator { cd "$(dirname "$(which emulator)")" && ./emulator "$@"; }

em seguida, execute para carregar as alterações:

source ~/.profile

(ou source ~/.bashrcclaro)

Isso permitirá a execução emulatoraté que eles solucionem o problema

(com base no #10 yanokwacomentário de https://code.google.com/p/android/issues/detail?id=235461 )

J. Costa
fonte
tentei isso com SDK Tools 25.3.1 e Ubuntu 16.10 e não funcionou, começou a receber erros libGL
vallllll
eu usei which emulatorno osx para encontrar a pasta
V-SHY 23/03
@allllll Eu só testei no Mac, mas deve funcionar no Linux também. Você é capaz de executar no Android Studio?
233 J. Costa
7
No zsh use em whence -pvez de which. Coloque também cd ... && ...parênteses para executá-los no subshell para evitar a alteração do diretório no shell atual.
mixel
11
Posso confirmar que ele funciona no linux e no zsh com as modificações do @ mixel:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Andy Jones
63

Instalei o Android Emulator 26.1.2 mais recente, que resolveu esse problema.

Btw, se no seu PATH você tem ambos:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

O emulatorcomando tentará usar o emulator.exe dentro da pasta tools, que não está funcionando.

Para resolver isso em seu PATH, você precisa mover C:\AndroidSDK\emulator a linha antes do diretório tools, dessa forma, o executável do emulador será pesquisado primeiro dentro da pasta do emulador e terá precedência sobre o presente na pasta tools

MacOS: Se você possui um Mac, pode mover-se ~/Library/Android/sdk/emulatorantes ~/Library/Android/sdk/tools

MatPag
fonte
8
adicionar o emulatordiretório ao caminho me ajudou
Koen.
14
acrescentando ~ / Library / Android / SDK / emulador antes ~ / Library / Android / SDK / ferramentas correções-lo no Mac OS, bem
Jacob Wallström
3
Sim, usando o Mac OS, eu coloquei emulador na frente dos outros em PATH e funciona
Aaron Gong
1
Obrigado - adicionando emulatorantes toolsno caminho funcionou para mim no Linux.
Vanessa Deagan
Obrigado, adicionei o caminho para o ambiente Variables e o resolvi. Win10. Também como mencionado acima, entrada do emulador antes de Ferramentas.
Francois Muller
20

uma solução simples é adicionar esse alias ao seu .bashrc .profileou equivalente

alias emu="$ANDROID_HOME/tools/emulator"

então source .bashrcou .profileou simplesmente abra um novo terminal

finalmente, executar seu emulador será tão simples quanto emu -avd name

Amine Hakkou
fonte
2
+1 para o alias, que resolveu para mim. Eu não tenho ANDROID_HOME definido, então substituí o caminho normal. Não sei por que parece que a maioria tem e eu não ... eu estou no mac.
precisa saber é o seguinte
12

Os usuários do Zsh podem adicionar:

function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }

para .zshrc(ou .zshenv).

Carregue as alterações no shell atual fornecendo o arquivo alterado:

source ~/.zshrc

Agora você pode usar o emulatorcomando no zsh.

Agradeço a J. Costa por sua resposta bash.

mixel
fonte
10

Eu tive o mesmo problema com o último Android Studio instalado ontem no Macbook.

Embora o binário do emulador estivesse disponível na pasta sdk / tools, o pacote Android Emulator não estava instalado. Selecionando o Android Emulator no Android Studio-> Preferências-> Configurações do Sistema-> Android SDK, baixou o pacote do emulador e o instalou.

Após a instalação do emulador, sou capaz de iniciar o emulador.

Kumar
fonte
Eu tive que reiniciar o Android Studio depois de fazer isso.
Adam Johns
Para Linux, vá paraTools -> Android -> SDK Manager -> SDK Tools -> Activate 'Android Emulator' -> OK
Mitja 11/17
Solução funcionou para mim também, @AdamJohns sem reiniciar;)
AamirR
7

Primeiro, o segmento de problemas no Google Issue Tracker já foi resolvido. Você não precisa mais definir variáveis ​​de ambiente como LD_LIBRARY_PATHsolução alternativa. Mas você precisa atualizar o SDK do Android e usar o pacote MAIS emulator RECENTE (binários). Sem isso, você ainda verá os QTerros irritantes .

Em seguida, é crucial garantir que os pacotes SDK necessários estejam instalados para iniciar um emulador. Ao instalar uma imagem de emulador específica sdkmanager, ele não verificará ou solicitará a instalação das dependências necessárias. Sempre que você vê um erro reclamando ANDROID_SDK_ROOT, como PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOTou PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value, é exatamente por isso.

Portanto, as outras 3 dependências essenciais, além da imagem do emulador, são:

  • platform-tools
  • platforms;android-<api_level>
  • emulator

Que você pode instalar via:

sdkmanager "platform-tools" "platforms;android-<api_level>" "emulator"

O api_levelé o mesmo nível API sua imagem emulador é.

Jing Li
fonte
mhh eu PANIC: Missing emulator engine program for 'x86' CPU.também chego aonde deveria ir o SDK_ROOTponto? apenas ANDROID_HOME?
Kemuri
Acabei de descobrir emulatorsenta - se agora sdk/emulatore o da ferramenta causa esse erro.
Kemuri
5

Para aqueles que ainda estão enfrentando o problema, mesmo ao executar o comando do .../Sdk/toolsdiretório, tente adicionar o -use-system-libsargumento.

Portanto, deve estar no seguinte formato:

path/to/Sdk/emulator -use-system-libs -avd [AVD-NAME]

Para mim, aqui está um exemplo:

/home/cillian/Android/Sdk/emulator -use-system-libs -avd Nexus5

Cillian Myles
fonte
2
testei isso no meu ubuntu 16.10 e é a única coisa que funciona, estou apenas usando o emulador -use-system-libs -avd Pixel_XL_API_25.
vallllll
5

Eu tive o mesmo problema e o resolvi instalando o emulador, porque de alguma forma as atualizações parecem excluí-lo. Faça isso nas ferramentas do Android Studio-> Gerenciador de SDK. Espero que isto ajude

nkoroi
fonte
A reinstalação do emulador do SDK Manager corrigiu o erro Qt, mas acabei tendo outro problema com o HAX. Usando o Mac.
Gennon 24/03
Corrigido o problema do HAX saindo do Docker na minha máquina. Tem que iniciar o emulador a partir do diretório tools. Ou então eu recebo o bug Qt novamente.
Gennon 24/03
4

Eu instalei o Android Studio 2.3.3 (hoje 01/08/2017) no windows 10 x64

O mesmo problema.

  • Instalei o emulador manualmente no Android Studio -> Ferramentas -> Android -> Gerenciador de SDK -> Ferramentas SDK -> Emulador do Android (versão 26.1.2)

  • Após a instalação ... mesmo problema

  • Eu adicionei meu caminho da pasta emulador às variáveis ​​de ambiente antes do caminho das ferramentas (como uma resposta acima), mas ainda o mesmo problema.
  • Em seguida, excluí o emulator.exe e o emulator-check.exe da pasta tools e isso foi resolvido por mi the issue

MTK
fonte
3

Esse problema parece estar corrigido na versão 7.0.X do Cordova

Se você estiver usando o Cordova versão 6.5.0, poderá corrigi-lo facilmente.

A raiz do problema está no arquivo emulator.js localizado na raiz do diretório do seu projeto em ./platforms/android/cordova/lib/emulator.js

Simplesmente atualize a seguinte linha (para mim era a linha 205):

.spawn ('emulador', args, {stdio: 'herdar', desanexado: true})

para

.spawn ('emulador', args, {stdio: 'herdar', desanexado: true, cwd: process.env ['ANDROID_HOME'] + '/ tools'})

Isso corrigirá o problema de caminho relativo que você está enfrentando.

Além disso, há uma segunda correção necessária para a versão 6.5.0 do Cordova na linha 56. Basta soltar a letra "s" da palavra " avds " no plural, para torná-la " avd " singular.

Andre F
fonte
Só para acrescentar que para os outros lendo este é: se você acabou de instalar o SDK via bebida dinheiro que você deve substituir ANDROID_HOME com ANDROID_SDK_ROOT (a menos que você tenha configurado o env ANDROID_HOME também)
lubricin
3

Eu estava enfrentando esse problema

  java.io.IOException: Cannot download 
 'https://dl.google.com/android/repository/emulator-windows-4266726.zip'

Atualizei para o studio 3.0 no Windows 10, meus emuladores pararam de funcionar.

Excluídas pastas de instalação anteriores do android studio como 2.0 e 2.1 presentes sob o meu nome de usuário, ao lado da pasta .AndroidStudio3.0 (deixando intocada).

Excluídos emuladores instalados anteriormente que, de qualquer forma, pararam de funcionar.

Baixou o arquivo zip do emulador manualmente no link acima. Colou seu conteúdo na pasta emulador de

       C:\Users\myusername\AppData\Local\Android\Sdk\emulator

Criou um novo emulador e o iniciou, Bingo! está funcionando!!

Learner_Programmer
fonte
1
Isso é o que finalmente fez o truque para mim, se eu não baixar a partir do link, mas atualizou o emulador usando SDK Manager no Android Studio 3.0
yvesmancera
3

Siga estas etapas para resolver esse problema (Windows 10):

  1. Faça check-in no Android studio se você instalou o emulador do Android; caso contrário, instale-o.

  2. Faça check-in no Android studio se você instalou o Intel x86 Emulator Accelerator (instalador HAXM); caso contrário, instale-o.

  3. Em Variáveis ​​de ambiente => Variáveis ​​do sistema, edite "Caminho". Você precisa adicionar esta linha para o emulador: %ANDROID_HOME%\emulatorantes %ANDROID_HOME%\toolse %ANDROID_HOME%\platform-tools(a terceira etapa foi uma solução para mim).

nikola.maksimovic
fonte
2

Para Mac

Se você criou emuladores, tente este código de shell:

#!/bin/bash
cd /Users/***/Library/Android/sdk/tools/
avds=`emulator -list-avds`
echo "show All emulators"
i=0
for item in $avds
do
    echo [$i] $item
    let i+=1
done
read index
avds=($avds)
# echo ${avds[$index]}
emulator -avd ${avds[$index]}

*** é o seu nome de usuário

user7725098
fonte
2

Meu estúdio android está no sistema operacional Windows. mas a maioria das respostas nesta página não funciona para mim.

mas eu entendo isso de uma maneira fácil.

No seu IDE do android studio, abra o [Sdk manager], verifique se você fez o download do [Android Emulator] e [Android SDK tool]

Como verificá-los?

[Gerenciador do SDK] -> [Aparência e comportamento] -> [Configuração do sistema] -> [Android Sdk] -> Existem guias aqui e escolha a segunda [Ferramentas do SDK]. depois marque [Android Emulator] e [Android SDK tool].

Espero que possa ajudá-lo.

Boa sorte!

Oscar Zhou1989
fonte
2

Vejo que você só deve adicionar abaixo no caminho para poder iniciar o emulador

C:\Users\Ram\AppData\Local\Android\Sdk\platform-tools
C:\Users\Ram\AppData\Local\Android\Sdk\emulator.

Depois de instalar o Android Studio 3.0 e superior, vejo que C:\Users\Ram\AppData\Local\Android\Sdk\emulator emulator_foldertem os mesmos arquivos queC:\Users\Ram\AppData\Local\Android\Sdk\tools tools_folder

Alguns arquivos estão faltando na pasta tools; portanto, remova a pasta tools do caminho.

Você pode usar os comandos abaixo do emulador para iniciar o emulador no prompt de comando:

emulator -list-avds

emulator @Pixel_2_XL_API_26 - Based on the avd that you have setup

emulator_commands

Ram Sharma
fonte
1

A instalação do emulador do Android resolverá o problema, pois essa configuração não está ativada por padrão no android studio. No android studio 3+ em diante, você não pode encontrá-lo em Ferramentas -> Android -> Gerenciador de SDK -> Ferramentas SDK -> Emulador do Android, mas está em Arquivo -> Configurações -> Aparência e comportamento -> Configurações do sistema -> SDK para Android -> Ferramentas SDK -> Emulador para Android

MD5
fonte
1

Acabei de resolver esse problema no cenário do emulador sem cabeça. Portanto, se eu verifiquei minha pasta andrdoid_sdk, existem 2 emuladores executáveis. A questão está na versão

${ANDROID_HOME}/emulator/emulator
version 29.3.4
no issue

e o segundo é

${ANDROID_HOME}/tools/emulator
version 26.0.3
QT issue

verifique se você está usando a versão mais recente do emulador, especialmente se precisar de um emulador sem cabeça, conforme indicado em: https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html

surga
fonte
0

Meu problema acabou sendo que eu estava executando o VirtualBox ao mesmo tempo que o emulador. Para qualquer outra pessoa que esteja enfrentando esse problema, dê uma olhada aqui: o emulador Android e o virtualbox não podem ser executados ao mesmo tempo . Espero que uma das respostas lhe dê uma solução funcional.

pokkie
fonte
0

Você também pode simplesmente abrir Ferramentas> AVD Manager no Android Studio e iniciar o emulador manualmente.

ThinkDigital
fonte
Eu pensei que o OP foi sobre a falha por meio dos menus Android Studio. Para mim, a GUI funciona, mas não consigo fazer a linha de comando emulator -avd "Nexus_5X_API_27"funcionar.
MarkHu 9/05/19
0

Pode haver os erros / atualizações ocorridos no sistema operacional subjacente. Assim, em vez de atualizar em .profile, /etc/environmentou .bashrcarquivo a ponto de adb, emulatoretc, put (copiar e colar) toda a emulatorpasta dentro /usr/bindo diretório. Este / usr / bin é apontado por padrão pelo sistema. Instale a adbferramenta a partir do terminal. Isso deve resolver tudo.

E / ou atualize todas as suas variáveis ​​de ambiente no /etc/bash.bashrcarquivo. Observe que: /etc/bash.bashrcfile é o que é executado toda vez que você abre o terminal bash.

Uddhav Gautam
fonte
0

Se você estiver usando um contêiner do Docker que esteja executando uma imagem do Ubuntu x86, talvez não seja possível executar um emulador baseado em x86 na imagem do Docker. Você receberá o "Qt library not found"erro ou o "Please ensure KVM is properly installed and usable"erro (mais informações aqui ).

Uma alternativa é usar um emulador baseado em ARM, que é mais fácil de executar, embora seja mais lento:

# Download an ARM emulator image
android-sdk/tools/bin/sdkmanager "system-images;android-24;default;armeabi-v7a"

# Create an ARM-based emulator AVD with 250 MB SD card
avdmanager create avd -n Android_7.0_API_24 -k "system-images;android-24;default;armeabi-v7a" -c 250M --force

# Check the image is properly created and available to run
android-sdk/emulator/emulator -list-avds

# Run the emulator
android-sdk/emulator/emulator -avd Android_7.0_API_24

Mais informações: https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef

Mr-IDE
fonte
0

Uma solução que funcionou para mim que eu nunca vi aqui antes é o link android-sdk/emulator/emulatorpara android-sdk/tools/emulator.

Burro? Gênio? funciona para mim.

0atman
fonte
Não funciona. Eu já tenho o arquivo no local especificado
Ashok Koyi 12/07/19
0

Corrigi-o simplesmente adicionando $ ANDROID_SDK_ROOT / emulator no $ PATH.

Não sei por que existem dois binários exec emulador no SDK do Android. 1) no $ ANDROID_SDK_ROOT / tools 2) $ ANDROID_SDK_ROOT / emulador, mas o segundo é trabalhado para mim.

Estou usando a fish shelladição da linha abaixo em ~ / .config / fish / config.fish.

set -x ANDROID_SDK_ROOT $HOME/Android/Sdk
set -x JAVA_HOME $HOME/android-studio/jre
set -x PATH $PATH $ANDROID_SDK_ROOT/emulator
set -x PATH $PATH $ANDROID_SDK_ROOT/tools
set -x PATH $PATH $ANDROID_SDK_ROOT/tools/bin
set -x PATH $PATH $ANDROID_SDK_ROOT/platform-tools
moondaddi
fonte
0

Eu consigo resolver esse erro. Na minha variável de sistema, preciso definirANDROID_HOME

variável de sistema

Para minha variável User, eu preciso desses dois caminhos

C:\Users\tonyhudson\AppData\Local\Android\Sdk\platform-tools
C:\Users\tonyhudson\AppData\Local\Android\Sdk\emulator

Lembre-se de excluir, C:\Users\tonyhudson\AppData\Local\Android\Sdk\toolspois causará o erro

variável de usuário

Tony Ngo
fonte
0

Quando você instalou apenas o Android SDK e não o Android studio. Você precisa descobrir o caminho do emulador e executar com o caminho completo. Por exemplo,

/ usr / local / share / android-sdk / tools / emulador @test

Isso deve resolver seu problema. Pelo menos é isso que funcionou para mim.

Senthil Kumar Vaithiyanathan
fonte
0

cd $ ANDROID_HOME / tools e emulador --avd @whatever_name_it_is

Ravindra-Ravi Verma
fonte
0

Estou trabalhando no react-native e estava enfrentando esse problema, não consegui abrir o Emulator do cmd, o que foi realmente irritante porque tive que abri-lo no Android Studio, o que leva muito tempo.

Portanto, verifique primeiro se você pode abrir o emulador executando o cmd na Android\Sdk\emulatorpasta ou Android\Sdk\toolsse está funcionando em alguma dessas pastas, então esta solução é para você! 😀

no meu caso, rodar o cmd nessas duas pastas estava funcionando, mas se abrir o cmd em qualquer outra pasta, meu emulador não funcionará e por esse erro:

[14684]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt\lib
Could not launch 'C:\Users\Shehr\AppData\Local\..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe': No such file or directory

Então, como eu resolvi isso sem perder meu tempo:

  1. primeiro copie o caminho da pasta em que o emulador está trabalhando no cmd; no meu caso, era Android\Sdk\emulator&&; Android\Sdk\toolsportanto, copiamos qualquer um desses caminhos!
  2. Edite as variáveis ​​de ambiente do sistema e adicione uma nova variável, escreva o caminho copiado no valor e denomine "EMULATOR" (ou o que você quiser nomear a variável).

Agora basta executar o comando em cmd em qualquer pasta como esta, %EMULATOR% -avd DEVICE_NAMEassim como nomeamos nossa variável, EMULATORentão usaremos em %EMULATOR%vez de emulator! É assim que o cmd direcionará para o arquivo emulator.exe correto e ele funcionará.

Kashan Haider
fonte