Impossibile avviare AVD nell'emulatore: libreria QT non trovata


132

Sono nuovo su Android Studio e sto riscontrando problemi durante l'utilizzo dell'emulatore. Quando provo a correre continua a bloccarsi dicendo:

"Impossibile avviare AVD nell'emulatore" [6816]: ERRORE: ./ android / qt / qt_setup.cpp: 28: libreria Qt non trovata in C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator \ lib64 \ qt \ lib

Impossibile avviare "C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe": nessun file o directory

Ho abilitato VT-x dalle impostazioni del BIOS, ma sto riscontrando il problema. Ho cercato molto e non riesco a trovare una risposta. Qualsiasi aiuto sarà molto apprezzato. Qualcuno può darmi una soluzione?

Schermata dell'errore Registra istantanea


vedi la mia risposta. Ha funzionato perfettamente.
Uddhav Gautam,

Risposte:


157

Questo sembra essere un problema relativo al recente aggiornamento. Una soluzione temporanea è lanciare l'emulatore dalla /path/to/android-sdk/toolsdirectory nella riga di comando.

Consulta https://code.google.com/p/android/issues/detail?id=235461 per seguire il problema.


6
Sto eseguendo l'emulatore da Android / sdk / tools ma sto ancora ricevendo l'errore QT.
Gonzalo

3
Ho avuto lo stesso problema e questa soluzione funziona per me.
Gontard,

2
Ultimi aggiornamenti di ieri. In esecuzione dalla directory <Android SDK> / tools ha funzionato per me, ma ho anche / tools e / platform-tools nel mio percorso. Dovrebbero risolvere questo problema.
Sean Aitken,

13
Il commento n. 25 sul problema è stato risolto per me
Gregriggins36,

1
Ha funzionato per me, ma ho dovuto anche utilizzare -use-system-libscome argomento la directory degli strumentiemulator situata .
Rany Albeg Wein,

105

Tutte le altre risposte non hanno funzionato per me poiché "Android Emulator" non è stato installato con un'installazione standard di Android Studio. Assicurati di averlo installato e quindi prova altre risposte, se necessario.inserisci qui la descrizione dell'immagine


2
Anche l'installazione di "Android Emulator" l'ha risolto per me. Successivamente sono stato in grado di riavviare l'emulatore, ma ho seguito l'errore HAXM "unknown hax vcpu return 1". Il semplice riavvio della mia macchina ha finalmente risolto tutti i problemi. (See: stackoverflow.com/a/41867405/2350644 )
user2350644

2
l'installazione dell'emulatore dall'interno di Android Studio ha funzionato anche per me. Ora posso eseguire Emulator anche dalla riga di comando.
abhinavgoyal02

3
Grazie davvero, ho risolto il mio problema dopo aver perso 3 ore :(
Hossam Ghareeb

1
Ho avuto il problema di avviare l'emulatore su Mac. Si arrestava in modo anomalo dopo l'avvio senza alcun messaggio. Il tuo consiglio mi ha aiutato.
Rostyslav Roshak,

3
Anche questo mi ha aiutato. Fondamentalmente con la mia nuova installazione di Android Studio, dopo aver eseguito gli aggiornamenti e aver tentato di avviare un'immagine nell'emulatore per la prima volta. Questo è stato l'errore. E sì, è abbastanza logico che tu abbia bisogno dell'emulatore installato se vuoi usarlo. Sarebbe bello se Android Studio dicesse semplicemente: "vuoi eseguire un dispositivo virtuale sull'emulatore che forniamo, ma devi prima installare questo emulatore, vuoi installarlo ora?" ....
morksinaanab

82

Per i sistemi Linux o Mac è possibile aggiungere quanto segue a ~/.profile(o ~/.bashrc):

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

quindi esegui per caricare le modifiche:

source ~/.profile

(o source ~/.bashrcovviamente)

Ciò consentirà l'esecuzione emulatorfino a quando non risolveranno il problema

(basato sul #10 yanokwacommento di https://code.google.com/p/android/issues/detail?id=235461 )


provato con SDK Tools 25.3.1 e Ubuntu 16.10 e non ha funzionato, ho iniziato a ricevere errori
libGL

ho usato which emulatorin osx per trovare la cartella
V-SHY

@vallllll Ho provato solo su Mac, ma dovrebbe funzionare anche su Linux. Sei in grado di eseguire in Android Studio?
J. Costa

7
In zsh usare whence -pinvece di which. Metti anche le cd ... && ...parentesi per eseguirle in subshell per evitare di cambiare directory nella shell corrente.
mixel,

11
Posso confermare che funziona su linux e zsh con le modifiche di @ mixel:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Andy Jones,

63

Ho installato l'ultimo emulatore Android 26.1.2 che ha risolto questo problema.

A proposito se nel tuo PERCORSO hai entrambe queste cose:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

Il emulatorcomando tenterà di utilizzare emulator.exe nella cartella degli strumenti, che non funziona.

Per risolvere questo problema nel tuo PERCORSO devi spostarti C:\AndroidSDK\emulator nella riga prima della directory degli strumenti, in questo modo l'eseguibile dell'emulatore verrà prima cercato nella cartella dell'emulatore e avrà la precedenza su quello presente nella cartella degli strumenti

MacOS: se hai un Mac puoi spostarti ~/Library/Android/sdk/emulatorprima ~/Library/Android/sdk/tools


8
l'aggiunta della emulatordir al percorso mi ha aiutato
Koen.

14
l'aggiunta di ~ / Library / Android / sdk / emulator prima di ~ / Library / Android / sdk / tools lo risolve anche su Mac OS
Jacob Wallström,

3
Sì, usando mac OS, ho messo l'emulatore davanti agli altri in PERCORSO e funziona
Aaron Gong

1
Grazie - l'aggiunta emulatorprima toolsnel percorso ha funzionato per me su Linux.
Vanessa Deagan,

Grazie, ho aggiunto il percorso alle variabili di ambiente e l'ho risolto. Win10. Inoltre, come menzionato sopra, voce dell'emulatore prima di Strumenti.
Francois Muller,

20

una soluzione semplice è aggiungere questo alias al tuo .bashrc .profileo equivalente

alias emu="$ANDROID_HOME/tools/emulator"

quindi source .bashrco .profilesemplicemente apri un nuovo terminale

finalmente eseguire l'emulatore sarà semplice come emu -avd name


2
+1 per l'alias, che lo ha risolto per me. Non ho definito ANDROID_HOME, quindi ho appena sostituito il percorso normale. Non sono sicuro del motivo per cui sembra che la maggior parte ce l'abbia e io non ... Sono su Mac.
TahoeWolverine,

12

Gli utenti di Zsh possono aggiungere:

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

a .zshrc(o .zshenv).

Carica le modifiche nella shell corrente acquistando il file modificato:

source ~/.zshrc

Ora puoi usare il emulatorcomando in zsh.

Grazie a J. Costa per la sua risposta bash .


10

Ho avuto lo stesso problema con l'ultimo Android Studio installato proprio ieri su Macbook.

Sebbene il binario dell'emulatore fosse disponibile nella cartella sdk / tools, il pacchetto dell'emulatore Android non era installato. Selezionando Emulatore Android in Android Studio-> Preferenze-> Impostazioni di sistema-> SDK Android, scaricato il pacchetto emulatore e installato.

Dopo l'installazione dell'emulatore, sono in grado di avviare l'emulatore.


Ho dovuto riavviare Android Studio dopo aver fatto questo.
Adam Johns,

Per Linux, vai aTools -> Android -> SDK Manager -> SDK Tools -> Activate 'Android Emulator' -> OK
Mitja l'

La soluzione ha funzionato anche per me, @AdamJohns senza riavviare;)
AamirR

7

Innanzitutto, il thread di problemi su Google Issue Tracker era già stato risolto. Non è più necessario impostare la variabile di ambiente come LD_LIBRARY_PATHsoluzione alternativa. Ma devi aggiornare il tuo SDK Android e utilizzare il pacchetto ULTIMO emulator (binari). Senza questo, vedrai comunque i fastidiosi QTerrori.

Quindi, è fondamentale assicurarsi che i pacchetti SDK richiesti siano installati per avviare un emulatore. Quando si installa un'immagine specifica dell'emulatore da sdkmanager, non controllerà né ti chiederà di installare le dipendenze richieste. Ogni volta che vedi un errore di cui ti lamenti ANDROID_SDK_ROOT, come PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOTo PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value, è esattamente per questo.

Quindi le altre 3 dipendenze essenziali a parte l'immagine dell'emulatore sono:

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

Che puoi installare tramite:

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

Lo api_levelè lo stesso livello di API vostra immagine emulatore è.


mhh arrivo PANIC: Missing emulator engine program for 'x86' CPU.anche dove dovrebbe essere il SDK_ROOTpunto? solo ANDROID_HOME?
kemuri,

ho appena scoperto che si emulatortrova ora sdk/emulatore quello dallo strumento provoca quell'errore.
kemuri,

5

Per coloro che continuano a riscontrare il problema anche quando si esegue il comando dalla .../Sdk/toolsdirectory, provare ad aggiungere l' -use-system-libsargomento.

Quindi dovrebbe essere nel seguente formato:

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

Per me, ecco un esempio:

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


2
testato questo sul mio Ubuntu 16.10 ed è l'unica cosa che funziona, sto solo usando l'emulatore -use-system-libs -avd Pixel_XL_API_25.
vallllll il

5

Ho avuto lo stesso problema e l'ho risolto installando l'emulatore perché in qualche modo gli aggiornamenti sembrano averlo eliminato. Fallo dagli strumenti di Android Studio-> gestore SDK. Spero che questo ti aiuti


La reinstallazione dell'emulatore da SDK Manager ha corretto il bug Qt, ma alla fine ho riscontrato un altro problema con HAX. Utilizzando Mac.
Gennon,

Risolto il problema HAX chiudendo Docker sul mio computer. Devi avviare l'emulatore dalla directory degli strumenti. Altrimenti ricevo di nuovo il bug Qt.
Gennon,

4

Ho installato Android Studio 2.3.3 (oggi 2017-08-01) su Windows 10 x64

Stesso problema.

  • Ho installato manualmente l'emulatore da Android Studio -> Strumenti -> Android -> Sdk Manager -> SDK Tools -> Android Emulator (versione 26.1.2)

  • Dopo l'installazione ... stesso problema

  • Ho aggiunto il mio percorso dalla cartella dell'emulatore alle variabili dei miei ambienti prima del percorso degli strumenti (come una risposta sopra) ma ancora lo stesso problema.
  • Quindi ho eliminato emulator.exe ed emulator-check.exe dalla cartella degli strumenti e questo ha risolto il problema


3

Questo problema sembra essere stato risolto Cordova versione 7.0.X.

Se si utilizza Cordova versione 6.5.0 è possibile risolverlo facilmente.

La radice del problema si trova nel file emulator.js che si trova dalla radice della directory del progetto in ./platforms/android/cordova/lib/emulator.js

Aggiorna semplicemente la seguente riga (per me era la riga 205):

.spawn ('emulator', args, {stdio: 'inherit', distaccato: vero})

per

.spawn ('emulator', args, {stdio: 'inherit', distaccato: true, cwd: process.env ['ANDROID_HOME'] + '/ tools'})

Questo risolverà il problema relativo al percorso che stai riscontrando.

Inoltre, è necessaria una seconda correzione per la versione 6.5.0 di Cordova sulla riga 56. È sufficiente rilasciare la lettera "s" dalla parola " avds " plurale, per renderla " avd " singolare.


Solo per aggiungere che ad altri leggendo questo è: se hai appena installato l'SDK tramite brew cash dovresti sostituire ANDROID_HOME con ANDROID_SDK_ROOT (a meno che tu non abbia installato anche l'ENV ANDROID_HOME)
Lubricin

3

Stavo affrontando questo problema

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

Ho aggiornato a Studio 3.0 in Windows 10, i miei emulatori hanno smesso di funzionare. Cosa che ho fatto per il fissaggio,

Cancellate le precedenti cartelle di installazione di Android Studio come 2.0 e 2.1 presenti sotto il mio nome utente insieme alla cartella .AndroidStudio3.0 (lasciandolo intatto).

Eliminati gli emulatori precedentemente installati che in qualche modo hanno smesso di funzionare.

Scaricato manualmente il file zip dell'emulatore dal link sopra. Incollato il suo contenuto nella cartella dell'emulatore di

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

Creato un nuovo emulatore e iniziato, Bingo! funziona!!


1
Questo è quello che alla fine ha fatto il trucco per me, tranne per il fatto che non ho scaricato dal link ma aggiornato l'emulatore usando SDK Manager in Android Studio 3.0
yvesmancera,

3

Seguire questi passaggi per risolvere il problema (Windows 10):

  1. Controlla in Android Studio se hai installato l'emulatore Android, in caso contrario installalo.

  2. Controlla in Android Studio se hai installato Intel x86 Emulator Accelerator (programma di installazione HAXM), in caso contrario installalo.

  3. In Variabili d'ambiente => Le variabili di sistema modificano "Percorso". È necessario aggiungere questa riga per l'emulatore: %ANDROID_HOME%\emulatorprima %ANDROID_HOME%\toolse %ANDROID_HOME%\platform-tools(Il terzo passaggio è stato una soluzione per me.)


2

Per Mac

Se hai creato degli emulatori, prova questo codice 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]}

*** è il tuo nome utente


2

Il mio studio Android è nel sistema operativo Windows. ma la maggior parte delle risposte in questa pagina non funziona per me.

ma lo capisco in modo semplice.

Nell'IDE di Android Studio, apri [Gestore SDK], controlla se hai scaricato [Emulatore Android] e [Strumento SDK Android]

Come controllarli?

[Manager SDK] -> [Aspetto e comportamento] -> [Impostazioni di sistema] -> [Android Sdk] -> Qui ci sono delle schede e scegli la seconda [Strumenti SDK]. quindi selezionare [Emulatore Android] e [Strumento SDK Android].

Spero che ti possa aiutare.

In bocca al lupo!


2

Vedo che dovresti solo aggiungere di seguito nel percorso per poter avviare l'emulatore

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

Dopo aver installato Android Studio 3.0 e versioni successive, vedo che C:\Users\Ram\AppData\Local\Android\Sdk\emulator emulator_folderha gli stessi file diC:\Users\Ram\AppData\Local\Android\Sdk\tools tools_folder

Nella cartella degli strumenti mancano alcuni file, quindi rimuovere la cartella degli strumenti dal percorso.

È possibile utilizzare i seguenti comandi dell'emulatore per avviare l'emulatore dal prompt dei comandi:

emulator -list-avds

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

emulator_commands


1

L'installazione dell'emulatore Android risolverà il problema in quanto questa impostazione non è abilitata per impostazione predefinita in Android Studio. In Android Studio 3+ in poi non puoi trovarlo in Strumenti -> Android -> Sdk Manager -> Strumenti SDK -> Emulatore Android ma è in File -> Impostazioni -> Aspetto e comportamento -> Impostazioni di sistema -> SDK Android -> Strumenti SDK -> Emulatore Android


1

Ho appena risolto questo problema per lo scenario dell'emulatore senza testa. Quindi, se ho controllato la mia cartella andrdoid_sdk, ci sono 2 emulatori eseguibili. Il problema è legato alla versione

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

e il secondo è

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

quindi assicurati di utilizzare l'ultima versione dell'emulatore soprattutto se hai bisogno dell'emulatore senza testa come indicato su: https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html



0

Puoi anche semplicemente aprire Strumenti> AVD Manager da Android Studio e avviare l'emulatore manualmente.


Ho pensato che il PO è stato sulla mancanza tramite i menu Studio Android. Per me, la GUI funziona, ma non riesco a far funzionare la riga di comando emulator -avd "Nexus_5X_API_27".
MarkHu

0

Possono esserci errori / aggiornamenti nel sistema operativo sottostante. Quindi, invece di aggiornare in .profile, /etc/environmento .bashrcfile per puntare adb, emulatorecc., Metti (copia e incolla) tutta la emulatorcartella all'interno della /usr/bindirectory. Questo / usr / bin è di default indicato dal sistema. Installa lo adbstrumento dal terminale. Questo dovrebbe risolvere tutto.

E / O, aggiorna tutte le variabili di ambiente nel /etc/bash.bashrcfile. Nota: il /etc/bash.bashrcfile è ciò che viene eseguito ogni volta che apri il terminale bash.


0

Se si utilizza un contenitore Docker che esegue un'immagine Ubuntu x86, potrebbe non essere possibile eseguire un emulatore basato su x86 all'interno dell'immagine Docker. Riceverai l' "Qt library not found"errore o l' "Please ensure KVM is properly installed and usable"errore (maggiori informazioni qui ).

Un'alternativa è utilizzare un emulatore basato su ARM, che è più facile da eseguire, anche se più 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

Maggiori informazioni: https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef


0

Una soluzione che ha funzionato per me, che non ho mai visto prima, è il collegamento android-sdk/emulator/emulatora android-sdk/tools/emulator.

Dumb? Genio? per me va bene.


Non funziona. Ho già il file nella posizione specificata
Ashok Koyi,

0

Ho risolto semplicemente aggiungendo $ ANDROID_SDK_ROOT / emulatore in $ PATH.

Non so perché ci sono due file di emulazione exec nell'SDK Android. 1) in $ ANDROID_SDK_ROOT / tools 2) $ ANDROID_SDK_ROOT / emulatore, ma il secondo funziona per me.

Sto usando l' fish shellaggiunta sotto la riga in ~ / .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

0

Riesco a risolvere questo errore. Nella mia variabile di sistema devo impostareANDROID_HOME

variabile di sistema

Per la mia variabile utente ho bisogno di entrambi questi percorsi

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

Ricorda di eliminare C:\Users\tonyhudson\AppData\Local\Android\Sdk\toolsperché causerà l'errore

variabile utente


0

Quando hai installato solo Android SDK e non Android Studio. Devi scoprire il percorso dell'emulatore ed eseguire con il percorso completo. Per esempio,

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

Questo dovrebbe risolvere il tuo problema. Almeno questo è ciò che ha funzionato per me.



0

Sto lavorando su reattivo-nativo e stavo affrontando questo problema, non potevo aprire Emulator da cmd che era davvero fastidioso perché dovevo aprirlo da Android Studio che richiede molto tempo.

Quindi, prima controlla se puoi aprire l'emulatore eseguendo cmd nella Android\Sdk\emulatorcartella oAndroid\Sdk\tools se funziona in una di queste cartelle, allora questa soluzione è per te! 😀

nel mio caso l'esecuzione di cmd in entrambe queste cartelle funzionava, ma se apri cmd su qualsiasi altra cartella il mio emulatore non funzionerà e attraverso questo errore:

[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

Quindi come l'ho risolto senza perdere tempo:

  1. prima copia il percorso della cartella in cui l'emulatore funziona in cmd, nel mio caso era Android\Sdk\emulator&&Android\Sdk\tools quindi copiamo uno di questi percorsi!
  2. Modifica le variabili di ambiente di sistema e aggiungi una nuova variabile, scrivi il tuo percorso copiato nel valore e chiamalo "EMULATORE" (o come vuoi nominare la variabile).

Ora esegui il comando in cmd in qualsiasi cartella come questa, %EMULATOR% -avd DEVICE_NAMEcosì come abbiamo chiamato la nostra variabile, EMULATORquindi useremo al %EMULATOR%posto di emulator! Ecco come il cmd indirizzerà al file emulator.exe corretto e funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.