Nie można uruchomić AVD w emulatorze: nie znaleziono biblioteki QT


132

Jestem nowy w Android Studio i mam problemy podczas korzystania z emulatora. Kiedy próbuję uruchomić, ciągle się zawiesza, mówiąc:

„Nie można uruchomić AVD w emulatorze” [6816]: BŁĄD: ./ android / qt / qt_setup.cpp: 28: Nie znaleziono biblioteki Qt w C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator \ lib64 \ qt \ lib

Nie można uruchomić „C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe”: Brak takiego pliku lub katalogu

Włączyłem VT-x w ustawieniach BIOS-u, ale mam problem. Dużo szukałem i nie mogę znaleźć odpowiedzi. Każda pomoc będzie mile widziana. Czy ktoś może mi dać rozwiązanie?

Zrzut ekranu błędu Migawka dziennika


zobacz moją odpowiedź. Działało idealnie.
Uddhav Gautam

Odpowiedzi:


157

Wydaje się, że jest to problem związany z ostatnią aktualizacją. Tymczasowym rozwiązaniem jest uruchomienie emulatora z /path/to/android-sdk/toolskatalogu w linii poleceń.

Zobacz https://code.google.com/p/android/issues/detail?id=235461, aby śledzić problem.


6
Wykonuję emulator z systemu Android / sdk / tools, ale nadal pojawia się błąd QT.
Gonzalo

3
Miałem ten sam problem i to rozwiązanie u mnie działa.
gontard

2
Najnowsze aktualizacje z wczoraj. Uruchamianie z katalogu <Android SDK> / tools działało dla mnie, ale mam również / tools i / platform-tools w mojej ścieżce. Powinni to naprawić.
Sean Aitken

13
Komentarz nr 25 dotyczący problemu naprawił go dla mnie
Gregriggins36

1
U mnie zadziałało, ale musiałem dodatkowo użyć -use-system-libsjako argumentu emulatorznajdującego się w katalogu narzędzi .
Rany Albeg Wein

105

Wszystkie inne odpowiedzi nie działały, ponieważ „Emulator Androida” nie był instalowany przy standardowej instalacji Android Studio. Upewnij się, że go zainstalowałeś, a następnie wypróbuj inne odpowiedzi, jeśli to konieczne.wprowadź opis obrazu tutaj


2
Zainstalowanie „Android Emulator” również rozwiązało problem. Po tym mogłem ponownie uruchomić emulator, ale otrzymałem następujący błąd HAXM „unknown hax vcpu return 1”. Po prostu ponowne uruchomienie komputera w końcu rozwiązało wszystkie problemy. (Patrz: stackoverflow.com/a/41867405/2350644 )
user2350644

2
instalacja emulatora z wnętrza Android Studio również zadziałała. Teraz mogę również uruchomić Emulator z wiersza poleceń.
abhinavgoyal 02

3
Naprawdę dziękuję, rozwiązałem mój problem po zmarnowaniu 3 godzin :(
Hossam Ghareeb

1
Miałem problem z uruchomieniem emulatora na Macu. Kiedyś zawieszał się po uruchomieniu bez żadnego komunikatu. Twoja wskazówka mi pomogła.
Rostyslav Roshak

3
To też mi pomogło. Zasadniczo z moją świeżą instalacją Android Studio, po uruchomieniu aktualizacji i próbie pierwszego uruchomienia obrazu w emulatorze. To był błąd. I tak, to całkiem logiczne, że musisz mieć zainstalowany emulator, jeśli chcesz go używać. Byłoby miło, gdyby Android Studio po prostu powiedział: „chcesz uruchomić urządzenie wirtualne na dostarczonym przez nas emulatorze, ale najpierw musisz zainstalować ten emulator, czy chcesz go zainstalować teraz?” ....
morksinaanab

82

W przypadku systemów Linux lub Mac możesz dodać następujące elementy do ~/.profile(lub ~/.bashrc):

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

następnie uruchom, aby załadować zmiany:

source ~/.profile

(lub source ~/.bashrcoczywiście)

Pozwoli to na wykonanie, emulatordopóki nie naprawią problemu

(na podstawie #10 yanokwakomentarza z https://code.google.com/p/android/issues/detail?id=235461 )


wypróbowałem to z SDK Tools 25.3.1 i ubuntu 16.10 i to nie zadziałało, zacząłem otrzymywać błędy
libGL

Użyłem which emulatorw osx, aby znaleźć folder
V-SHY

@vallllll Testowałem tylko na Macu, ale powinno działać również na Linuksie. Czy możesz działać w Android Studio?
J. Costa

7
W zsh użyj whence -pzamiast which. Umieść również cd ... && ...w nawiasach, aby wykonywać je w podpowłoce, aby uniknąć zmiany katalogu w bieżącej powłoce.
mixel

11
Mogę potwierdzić, że działa na Linuksie i Zsh z modyfikacjami @ mixel:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Andy Jones

63

Zainstalowałem najnowszy emulator Androida 26.1.2, który rozwiązał ten problem.

Przy okazji, jeśli w swojej PATH masz oba to:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

emulatorKomenda spróbuje użyć emulator.exe wewnątrz folderu narzędzia, które nie działa.

Aby rozwiązać ten problem w swojej PATH, musisz przejść C:\AndroidSDK\emulator w linii przed katalogiem narzędzi, w ten sposób plik wykonywalny emulatora zostanie najpierw przeszukany w folderze emulatora i będzie miał pierwszeństwo przed tym obecnym w folderze narzędzi

MacOS: jeśli masz Maca, możesz się poruszać ~/Library/Android/sdk/emulatorwcześniej ~/Library/Android/sdk/tools


8
emulatorPomogło mi dodanie reż do ścieżki
Koen.

14
dodanie ~ / Library / Android / sdk / emulator przed ~ / Library / Android / sdk / tools naprawia to również w systemie Mac OS
Jacob Wallström

3
Tak, używając mac OS, umieściłem emulator przed innymi w PATH i działa
Aaron Gong

1
Dzięki - dodawanie emulatorwcześniej toolsw ścieżce działało u mnie na Linuksie.
Vanessa Deagan

Dziękuję, dodałem ścieżkę do zmiennych środowiskowych i od razu ją uporządkowałem. Win10. Jak wspomniano powyżej, wpis emulatora przed Narzędziami.
Francois Muller

20

prostym rozwiązaniem jest dodanie tego aliasu do swojego .bashrc .profilelub odpowiednika

alias emu="$ANDROID_HOME/tools/emulator"

następnie source .bashrclub .profilepo prostu otwórz nowy terminal

wreszcie uruchomienie emulatora będzie tak proste, jak emu -avd name


2
+1 dla aliasu, który rozwiązał to za mnie. Nie mam jednak zdefiniowanego ANDROID_HOME, więc po prostu zastąpiłem normalną ścieżkę. Nie wiem, dlaczego wydaje się, że większość to ma, a ja nie ... Jestem na Macu.
TahoeWolverine

12

Użytkownicy Zsh mogą dodawać:

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

do .zshrc(lub .zshenv).

Załaduj zmiany do bieżącej powłoki, pobierając zmieniony plik:

source ~/.zshrc

Teraz możesz użyć emulator polecenia w zsh.

Podziękowania dla J. Costy za odpowiedź za bash.


10

Miałem ten sam problem z najnowszym Androidem Studio zainstalowanym wczoraj na Macbooku.

Chociaż plik binarny emulatora był dostępny w folderze sdk / tools, pakiet emulatora Androida nie został zainstalowany. Wybierając emulator Androida w Android Studio-> Preferencje-> Ustawienia systemu-> Android SDK, pobieramy pakiet emulatora i instalujemy go.

Po instalacji emulatora jestem w stanie uruchomić emulator.


Po wykonaniu tej czynności musiałem ponownie uruchomić Android Studio.
Adam Johns

W przypadku systemu Linux przejdź doTools -> Android -> SDK Manager -> SDK Tools -> Activate 'Android Emulator' -> OK
Mitja,

Rozwiązanie też działało dla mnie, @AdamJohns bez restartu;)
AamirR

7

Po pierwsze, wątek problemu w Google Issue Tracker został już rozwiązany. Nie musisz już ustawiać zmiennej środowiskowej, takiej LD_LIBRARY_PATHjak obejście. Ale musisz zaktualizować Android SDK i użyć najnowszego emulator pakietu (pliki binarne). Bez tego nadal będziesz widzieć irytująceQT błędy.

Następnie ważne jest, aby upewnić się, że wymagane pakiety SDK są zainstalowane, aby uruchomić emulator. Podczas instalowania określonego obrazu emulatora przez sdkmanager, nie sprawdzi on ani nie poprosi o zainstalowanie wymaganych zależności. Za każdym razem, gdy widzisz błąd, narzeka ANDROID_SDK_ROOT, na przykład PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOTlubPANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value , dzieje się tak właśnie z tego powodu.

Zatem 3 inne istotne zależności poza obrazem emulatora to:

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

Które możesz zainstalować przez:

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

Jest api_levelto ten sam poziom interfejsu API, co obraz emulatora.


mhh, dotarłem PANIC: Missing emulator engine program for 'x86' CPU.też do czego powinienem SDK_ROOT? po prostu ANDROID_HOME?
kemuri

Właśnie się dowiedziałem, że emulatorteraz siedzi, sdk/emulatora ten z narzędzia powoduje ten błąd.
kemuri

5

Dla tych, u których problem nadal występuje, nawet podczas wykonywania polecenia z .../Sdk/toolskatalogu, spróbuj dodać -use-system-libsargument.

Powinien więc mieć następujący format:

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

Dla mnie oto przykład:

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


2
przetestowałem to na moim ubuntu 16.10 i to jedyna rzecz, która działa, po prostu używam emulatora -use-system-libs -avd Pixel_XL_API_25.
Vallllll

5

Miałem ten sam problem i rozwiązałem go instalując emulator, bo aktualizacje jakoś go skasowały. Zrób to z narzędzi Android Studio-> Menedżer SDK. Mam nadzieję że to pomoże


Ponowna instalacja emulatora z Menedżera SDK naprawiła błąd Qt, ale wtedy pojawił się inny problem z HAX. Korzystanie z komputera Mac.
Gennon

Naprawiono problem z HAX, zamykając Docker na moim komputerze. Muszę uruchomić emulator z katalogu narzędzi. Albo znowu mam błąd Qt.
Gennon

4

Zainstalowałem Android Studio 2.3.3 (dzisiaj 2017-08-01) na Windows 10 x64

Ten sam problem.

  • Ręcznie zainstalowałem emulator z Android Studio -> Narzędzia -> Android -> Sdk Manager -> Narzędzia SDK -> Emulator Androida (wersja 26.1.2)

  • Po instalacji ... ten sam problem

  • Dodałem ścieżkę z folderu emulatora do moich zmiennych środowiskowych przed ścieżką narzędzi (jak jedna z odpowiedzi powyżej), ale wciąż ten sam problem.
  • Następnie usunąłem emulator.exe i emulator-check.exe z folderu narzędzi i rozwiązałem ten problem


3

Wydaje się, że ten problem został rozwiązany w wersji Cordova 7.0.X

Jeśli używasz Cordova w wersji 6.5.0 , możesz to łatwo naprawić.

Źródło problemu znajduje się w pliku emulator.js znajdującym się w katalogu głównym twojego projektu pod adresem ./platforms/android/cordova/lib/emulator.js

Po prostu zaktualizuj następujący wiersz (dla mnie był to wiersz 205):

.spawn ('emulator', args, {stdio: 'inherit', detached: true})

do

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

Spowoduje to rozwiązanie problemu ze ścieżką względną, którego doświadczasz.

Jest też potrzebna druga poprawka dla wersji Cordova 6.5.0 w wierszu 56. Po prostu usuń literę „s” ze słowa „ avds ” w liczbie mnogiej, aby „ avd ” w liczbie pojedynczej.


Dodam, że dla innych czytających to jest: jeśli właśnie zainstalowałeś SDK za pomocą gotówki, powinieneś zamienić ANDROID_HOME na ANDROID_SDK_ROOT (chyba że skonfigurowałeś również środowisko ANDROID_HOME)
Lubricin Sierp

3

Miałem do czynienia z tym problemem

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

Zaktualizowałem do Studio 3.0 w Windows 10, moje emulatory przestały działać.

Usunięto poprzednie foldery instalacyjne Android Studio, takie jak 2.0 i 2.1, obecne pod moją nazwą użytkownika obok folderu .AndroidStudio3.0 (pozostawiając go nietkniętym).

Usunięto wcześniej zainstalowane emulatory, które w jakikolwiek sposób przestały działać.

Pobrano plik zip emulatora ręcznie z powyższego łącza. Wklejono jego zawartość do folderu emulatora

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

Stworzyłem nowy emulator i uruchomiłem go, Bingo! to działa!!


1
To jest ten, który w końcu
załatwił sprawę, tyle że nie pobrałem

3

Wykonaj następujące kroki, aby rozwiązać ten problem (Windows 10):

  1. Sprawdź w Android Studio, czy zainstalowałeś emulator Androida, jeśli nie, zainstaluj go.

  2. Sprawdź w Android Studio, czy zainstalowałeś Intel x86 Emulator Accelerator (instalator HAXM), jeśli nie, zainstaluj go.

  3. W Zmienne środowiskowe => Zmienne systemowe edytuj "Ścieżkę". Musisz dodać tę linię dla emulatora: %ANDROID_HOME%\emulatorprzed %ANDROID_HOME%\toolsi %ANDROID_HOME%\platform-tools(Trzeci krok był dla mnie rozwiązaniem.)


2

Dla Maca

Jeśli masz utworzyć emulatory, wypróbuj ten kod powłoki:

#!/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]}

*** to Twoja nazwa użytkownika


2

Moje studio Android działa w systemie operacyjnym Windows. ale większość odpowiedzi na tej stronie nie działa dla mnie.

ale rozumiem to w łatwy sposób.

W swoim IDE Android Studio otwórz [Sdk manager], sprawdź, czy pobrałeś [Android Emulator] i [Android SDK tool]

Jak je sprawdzić?

[Menedżer SDK] -> [Wygląd i zachowanie] -> [Ustawienia systemowe] -> [Android Sdk] -> Są tutaj zakładki i wybierz drugą [Narzędzia SDK]. następnie sprawdź [Android Emulator] i [Android SDK tool].

Mam nadzieję, że to może ci pomóc.

Powodzenia!


2

Widzę, że powinieneś dodać tylko poniżej ścieżkę, aby móc uruchomić emulator

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

Po zainstalowaniu Android Studio 3.0 i nowszych widzę, że C:\Users\Ram\AppData\Local\Android\Sdk\emulator emulator_folderma te same pliki coC:\Users\Ram\AppData\Local\Android\Sdk\tools folder_narzędzi

W folderze narzędzi brakuje niektórych plików, więc usuń folder narzędzi ze ścieżki.

Możesz użyć poniższych poleceń emulatora, aby uruchomić emulator z wiersza poleceń:

emulator -list-avds

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

emulator_commands


1

Zainstalowanie emulatora Androida rozwiąże problem, ponieważ to ustawienie nie jest domyślnie włączone w Android Studio. W Android Studio 3+ i nowszych nie można go znaleźć w menu Narzędzia -> Android -> Sdk Manager -> Narzędzia SDK -> Emulator Androida, ale znajduje się w Plik -> Ustawienia -> Wygląd i zachowanie -> Ustawienia systemu -> Android SDK -> SDK Tools -> Android Emulator


1

Właśnie rozwiązałem ten problem dla scenariusza bezgłowego emulatora, więc jeśli sprawdziłem mój folder andrdoid_sdk, są 2 emulatory plików wykonywalnych. Problem tkwi w jednej wersji

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

a drugi jest

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

więc upewnij się, że używasz najnowszej wersji emulatora, zwłaszcza jeśli potrzebujesz emulatora bezgłowego, jak podano na: https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html



0

Możesz także po prostu otworzyć Narzędzia> AVD Manager z Android Studio i ręcznie uruchomić emulator.


Myślałem, że PO była o braku poprzez menu Android Studio. Dla mnie GUI działa, ale nie mogę uruchomić wiersza poleceń emulator -avd "Nexus_5X_API_27".
MarkHu

0

Mogą występować błędy / aktualizacje występujące w podstawowym systemie operacyjnym. Dlatego zamiast aktualizować w .profile, /etc/environmentlub .bashrcfile to point adb, emulatoretc, umieść (kopiuj i wklej) cały emulatorfolder w /usr/binkatalogu. Ten / usr / bin jest domyślnie wskazywany przez system. Zainstaluj adbnarzędzie z terminala. To powinno rozwiązać wszystko.

I / Lub zaktualizuj wszystkie zmienne środowiskowe w /etc/bash.bashrcpliku. Zauważ, że: /etc/bash.bashrcplik jest tym, co jest wykonywane za każdym razem, gdy otwierasz terminal bash.


0

Jeśli używasz kontenera Docker, na którym działa obraz Ubuntu x86, może nie być możliwe uruchomienie emulatora opartego na x86 w obrazie Docker. Pojawi się "Qt library not found"błąd lub "Please ensure KVM is properly installed and usable"błąd (więcej informacji tutaj ).

Alternatywą jest użycie emulatora opartego na ARM, które są łatwiejsze do uruchomienia, chociaż są wolniejsze:

# 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

Więcej informacji: https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef


0

Rozwiązanie, które pracował dla mnie, że nie widziałem tu wcześniej jest linkiem android-sdk/emulator/emulatordoandroid-sdk/tools/emulator .

Głupi? Geniusz? pracuje dla mnie.


To nie działa. Mam już plik w określonej lokalizacji
Ashok Koyi

0

Naprawiłem to po prostu dodając $ ANDROID_SDK_ROOT / emulator w $ PATH.

Nie wiem, dlaczego w zestawie SDK systemu Android są dwa pliki binarne emulatora. 1) w $ ANDROID_SDK_ROOT / tools 2) $ ANDROID_SDK_ROOT / emulator, ale dla mnie ten drugi działa.

Używam fish shelldodania poniższej linii w ~ / .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

Udaje mi się rozwiązać ten błąd. W moim systemie zmiennym muszę ustawićANDROID_HOME

zmienna systemowa

Dla mojej zmiennej użytkownika potrzebuję obu tych ścieżek

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

Pamiętaj, aby usunąć, C:\Users\tonyhudson\AppData\Local\Android\Sdk\toolsponieważ spowoduje to błąd

zmienna użytkownika


0

Gdy zainstalowałeś tylko Android SDK, a nie Android Studio. Musisz znaleźć ścieżkę emulatora i wykonać pełną ścieżkę. Na przykład,

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

To powinno rozwiązać Twój problem. Przynajmniej tak mi się udało.



0

Pracuję nad React-Native i miałem ten problem, nie mogłem otworzyć Emulatora z cmd, co było naprawdę denerwujące, ponieważ musiałem go otworzyć z Android Studio, co jest bardzo czasochłonne.

Więc najpierw sprawdź, czy możesz otworzyć emulator, uruchamiając cmd w Android\Sdk\emulatorfolderze lub Android\Sdk\toolsczy działa w którymkolwiek z tych folderów, to rozwiązanie jest dla Ciebie! 😀

w moim przypadku uruchomienie cmd w obu tych folderach działało, ale jeśli otworzę cmd w jakimkolwiek innym folderze, mój emulator nie zadziała i przez ten błąd:

[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

Jak więc rozwiązałem to bez marnowania czasu:

  1. najpierw skopiuj ścieżkę do folderu, w którym pracuje emulator w cmd, w moim przypadku był to Android\Sdk\emulator&&, Android\Sdk\toolswięc kopiujemy jedną z tych ścieżek!
  2. Edytuj zmienne środowiskowe systemu i dodaj nową zmienną, zapisz skopiowaną ścieżkę do wartości i nazwij ją „EMULATOR” (lub jakkolwiek chcesz nazwać zmienną).

Teraz po prostu uruchom polecenie w cmd w dowolnym folderze, takim jak ten, %EMULATOR% -avd DEVICE_NAMEtak jak nazwaliśmy naszą zmienną, EMULATORwięc będziemy używać %EMULATOR%zamiast emulator! W ten sposób cmd będzie kierować się na właściwy plik emulator.exe i będzie działać.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.