Błąd emulatora: W konfiguracji tego AVD brakuje pliku jądra


183

Ten problem został wykryty, gdy próbowałem uruchomić emulator Androida w Eclipse. Nie mogę zrozumieć, co się stało. Szukałem online rozwiązania, ale wydawało się to niejasne i nie rozumiem jasno. Postępowałem zgodnie z instrukcjami, aby zainstalować AVD według stron i nie mogę zrozumieć, co przegapiłem. Wyjaśnij mi to w kolejnych krokach.



1
Na komputerze Mac nadal nie można go uruchomić; przy użyciu naprawy na AVD zadziałało dla mnie stackoverflow.com/a/15971119/664220
— Ronnie

uruchomiłem ponownie Eclipse po zainstalowaniu obrazu ARM, a następnie utworzeniu nowego AVD.
— Simon

Może to być ten link może pomóc: developer.android.com/tools/help/avd-manager.html
— Abhijeet

Odpowiedzi:


254

„Obraz systemu ARM EABI v7a” musi być dostępny. Zainstaluj go za pomocą menedżera zestawu SDK systemu Android: Menedżer zestawu SDK systemu Android

Kolejna wskazówka (patrz tutaj ) - z

  • Narzędzia Android SDK w wersji 17 lub nowszej
  • Android 4.0.3 (API Level 15)
  • za pomocą SDK rev 3 i System Image rev 2 (lub nowszy)

możesz włączyć emulację GPU, aby uzyskać szybszy emulator: wprowadź opis zdjęcia tutaj

Uwaga: Zgodnie z komentarzem you786, jeśli wcześniej utworzyłeś emulator, musisz go ponownie utworzyć, w przeciwnym razie to nie zadziała.

Alternatywa 1
Firma Intel udostępnia „ Menedżera wykonywania akceleracji sprzętowej firmy Intel ”, który jest emulatorem opartym na maszynach wirtualnych do wykonywania obrazów X86 i który jest również obsługiwany przez menedżera SDK systemu Android. Zobacz samouczek dotyczący emulatora Intel tutaj: HAXM przyspiesza emulator Androida . Roman Nurik pisze tutaj, że emulator Intela z Androidem 4.3 „płonie szybko”.

Alternatywa 2
W komentarzach powyższego wpisu można znaleźć odniesienie do Genymotion, który twierdzi, że jest „najszybszym emulatorem Androida do testowania i prezentacji aplikacji”. Genymotion działa na VirtualBox. Zobacz także ich witrynę w Google+ , ten post od Cyril Mottier i ten przewodnik na reddit .

Alternatywa 3
Na forach XDA przeczytałem o MEmu - najpotężniejszym emulatorze Androida na PC, lepszym niż Bluestacks . Możesz znaleźć emulator tutaj . To prowadzi mnie do ...

Alternatywa 4
... ten wpis na forum XDA: Jak korzystać z trybu FAST! BlueStack jako alternatywny emulator programowania Androida . Możesz znaleźć emulator tutaj .


1
Niestety awarie niektórych kart ATI, gdy emulacja GPU jest włączona - czekamy na zaktualizowany emulator.
— ChrLipp

23
Odkryłem, że musiałem usunąć emulator i odtworzyć go po instalacji, aby rozwiązać ten problem.
— you786 27.04.13

3
@ you786 tak, ważne jest, aby go odtworzyć
— Bobs

1
Zrobiłem wszystko, co w mojej mocy, ale wciąż tam jest podczas uruchamiania symulatora
— VISHNU GARG

Zobacz moją odpowiedź poniżej.
— Marc Rochkind,

22

Innym powodem wystąpienia tego błędu jest to, że Eclipse nie może znaleźć poprawnego pliku.

Sprawdź, gdzie Eclipse szuka plików SDK. Możesz to zrobić w wierszu polecenia. Poniżej znajduje się przykład wiersza polecenia systemu Windows dla utworzonego przeze mnie pliku avd o nazwie „SonyTabletS”:

c:\Program Files (x86)\Android\android-sdk\tools> emulator @SonyTabletS -verbose

Pierwszy zwracany wiersz pokazuje, gdzie zaćmienie szuka plików SDK i będzie wyglądał mniej więcej tak:

emulator: found ANDROID_SDK_ROOT: C:\Program Files (x86)\Android\android-sdk

Upewnij się, że lokalizacja jest poprawna.

W moim przypadku ANDROID_SDK_ROOTzostał niepoprawnie ustawiony na mój katalog domowy. Jest tak, ponieważ ustawiłem to w ten sposób, ślepo postępując zgodnie z instrukcjami instalacji zestawu SDK Sony Tablet S i dodając ANDROID_SDK_ROOTzmienną środowiskową z niepoprawną ścieżką.


W moim przypadku Android \ android-studio \ sdk został przejęty przez lokalizację ANDROID_SDK_ROOT, gdy uruchamiam emulator z folderu Android \ android-sdk. Gdy poprawnie wskaże Android \ android-sdk, działa.
— noel aye

To było dla mnie. Moje środowisko kompilacji używa jednego ANDROID_SDK_ROOT, którego nie mogę łatwo zaktualizować. Poprawka polegała na uruchomieniu czystego wiersza polecenia i ustawieniu ANDROID_SDK_ROOT na właściwy i stamtąd uruchom menedżera sdk.
— Doug Coburn,

Sprawdź dwukrotnie, czy nie masz przypadkowo zainstalowanych dwóch kopii zestawu SDK. Jeśli jesteś podobny do mnie, instalowałeś „Obraz systemu ARM EABI v7a” w jednym egzemplarzu, ale AVD próbował go znaleźć w drugim. Usunąłem jedną z moich kopii zestawu SDK, a następnie mój emulator uruchomił się od razu.
— sffc

W moim przypadku mój folder SDK wskazuje prawidłowy katalog.
— Neon Warge

16

Moja historia, Eclipse chciał pliku o nazwie „ kernel-ranchu” w folderze obrazów systemowych ( /path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a).

emulator: BŁĄD: w konfiguracji tego AVD brakuje pliku jądra! Upewnij się, że plik „kernel-ranchu” znajduje się w tej samej lokalizacji, co obraz systemu.

emulator: BŁĄD: ANDROID_SDK_ROOT jest niezdefiniowany

W tym folderze obrazów systemowych znajdował się plik o nazwie „ kernel-qemu”. Właśnie zmieniłem nazwę na „ kernel-ranchu” i zadziałało ...


4
W moim przypadku było na odwrót
— urnenfeld

15

Miałem ten sam problem. W moim przypadku okazało się, że zainstalowałem inną wersję SDK obok wersji dostarczonej przez Android Studio. Zmiana mojej zmiennej środowiskowej ANDROID_SDK_ROOT na pierwotną wartość to naprawiło.


1
Należy zauważyć, że jest to równie ważna odpowiedź, jak odpowiedź najwyższa w przypadku, gdy pakiet SDK był wcześniej instalowany przed Android Studio. Błąd polega na tym, że Android Studio powinien zauważyć, że ANDROID_SDK_ROOT jest już ustawiony na inną lokalizację i ostrzega użytkownika podczas instalacji.
— Rdzeń

Rdzeń jest poprawny. Dzisiaj przerzuciłem się z Eclipse na Android Studio i to właśnie rozwiązało problem.
— Pikamander2

11

Oto moja historia. W sekcji „Działania” w menedżerze AVD widziałem szczegóły AVD, który nie działał. Przewijając w dół znalazłem linię:

image.sysdir.1: add-ons\addon-google_apis-google-16\images\armeabi-v7a\

Następnie przeszedłem do tego pliku w:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

Odkryłem, że nie ma pliku jądra. Jednak znalazłem plik jądra na:

C:\Users\XXXX\AppData\Local\Android\sdk\system-images\android-16\default\armeabi-v7a

Skopiowałem go i wkleiłem z powrotem do:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

AVD działało.


Dzięki, to rozwiązało! Myślę, że to musi być błąd lub coś, ponieważ jest to bardzo dziwne zachowanie
— Hugo,

7

Otwórz AVD Manager w trybie administratora Wybierz VM i kliknij edytuj, kliknij OK Uruchom VM.

Uwaga edytora : Przez tryb administratora miał na myśli Kliknij prawym przyciskiem myszy> Uruchom jako administrator na platformach Windows.


Co / gdzie jest „Tryb administratora”?
— ericpeters0n

Nie można znaleźć VM, dla Mac OS
— Frank Fang,

4

Jeśli wiesz, że plik jądra jest zainstalowany na twoim komputerze, problem polega na tym, że emulator.exe go znajduje.

Moja poprawka była oparta na postie użytkownika 2789389. Mógłbym uruchomić AVD z AVD Managera, ale nie z wiersza poleceń. Korzystając z AVD Managera, wybrałem AVD, który chciałem uruchomić, i kliknąłem „Szczegóły”. To pokazało mi ścieżkę do pliku definicji AVD. W folderze o tej samej nazwie obok tego pliku .avd znalazłem plik config.ini. W ini znalazłem następujący wiersz:

image.sysdir.1=system-images\android-19\default\armeabi-v7a\

Zajrzałem do folderu C: \ Users \ XXXX \ android-sdks \ system-images \ android-19 i stwierdziłem, że ścieżka image.sysdir.1 jest nieprawidłowa. Musiałem usunąć podfolder „domyślny”, zmieniając go w ten sposób na:

image.sysdir.1=system-images\android-19\armeabi-v7a\

Zapisałem ini i próbowałem ponownie uruchomić AVD. To naprawiło problem!


To nie naprawiło tego. W moim przypadku mam obraz systemu w domyślnym podfolderze.
— Neon Warge

Nie musisz głosować w dół, ponieważ masz inny problem! To nie czyni mojej odpowiedzi błędną.
— BuvinJ

Czy głosowałeś też tutaj co drugi post, ponieważ nie rozwiązali twojego problemu?
— BuvinJ

To rozwiązało problem dla mnie, pracuję na komputerze Mac, a ścieżka wskazywała na image.sysdir.1 = add-ons / addon-google_apis-google-16 / images / armeabi-v7a, zmiana na system-images / android -16 / default / armeabi-v7a rozwiązał problem
— Felipe Jun

3

Upewnij się, że poprawnie skonfigurowałeś emulowane urządzenie. Android Studio może być wyposażony w taki, który pojawia się na liście emulowanych urządzeń, ale nie jest skonfigurowany do pracy z używaną wersją zestawu SDK.

Spróbuj utworzyć nowe emulowane urządzenie w Menedżerze AVD (Narzędzia-> Android> Menedżer AVD) i wybierz je jako cel.


Próbując zejść tą ścieżką, daj mi znać, że HAXM nie został faktycznie zainstalowany, nawet jeśli to pokazało. Zostałem poproszony o zainstalowanie Intel HAXM.
— Lodlaiden,

2

Zainstalowałem menedżera Android SDK i pakiet Android SDK wczoraj i ten błąd pojawia się również, gdy próbuję natychmiast uruchomić emulator Androida. Ale teraz ten błąd zniknął. Myślę, że ponowne uruchomienie systemu po zainstalowaniu zestawu SDK może rozwiązać ten problem.


2

Szczególna inteligentna myśl przyszła mi do głowy po długim dniu naprawy / przebudowy / aktualizacji SDK / NDK i JDK. Należy zbadać zmienne środowiskowe, ponieważ poprawką dla mojego brakującego pliku jądra AVD „GalaxyS3” było rozszerzenie odniesienia obrazów systemowych do absolutnego.

image.sysdir.1 = C: \ Android \ sdk \ system-images \ android-19 \ armeabi-v7a \

Dodanie wpisu „C: .... sdk \” do pozycji „image.sysdir.1 =” w pliku „workspace ”.android \ avd \ GalaxyS3.avd \ config.ini rozwiązało problem (na razie).


2

Zaktualizowałem mój zestaw Android SDK do najnowszej wersji (API 19). Kiedy próbowałem uruchomić emulator z telefonem 3, kompilacja zakończyła się powodzeniem, ale wystąpił ten sam problem.

W menedżerze AVD istniało urządzenie, jednak jego parametry były nieznane. Z pewnością dzieje się tak, ponieważ odinstalowałem starą wersję SDK (API 17), która zwraca drugi błąd podczas próby usunięcia urządzenia. Z komunikatem: „urządzenie już działa”

Aby rozwiązać problem, poszedłem do lokalizacji AVD w ~ / .android / avd / i ręcznie usunąłem plik directory.avd urządzenia i plik device.ini. Na koniec w menedżerze urządzeń utworzyłem nowy AVD dostarczany przez najnowszy API.

Umożliwiło to zbudowanie i uruchomienie emulatora przez telefon

mam nadzieję, że to pomoże

Dobry dzień


2

Po zaakceptowaniu odpowiedzi przez ChrLipp za pomocą Android Studio 1.2.2 w Ubuntu 14.04:

  • Zainstaluj pakiet „ARM EABI v7a System Image” z menedżera Android SDK.
  • Usuń niedziałające urządzenie wirtualne.
  • Dodaj nowe urządzenie z Application Binary Interface (ABI) jako armeabi-v7a.
  • Uruchom nowe urządzenie.

To zadziałało dla mnie. Spróbuj ponownie uruchomić system, jeśli nie działa.


2

Zobacz moją odpowiedź dla środowiska Android Studio , Mac i „PANIC: Brak programu silnika emulatora dla„ uzbrajania ”procesora.” .

Aby rozwiązać ten problem, musisz -kernelręcznie określić ścieżkę. to znaczy

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/android-16/default/armeabi-v7a/kernel-qemu

Pamiętaj, aby zmienić nazwę emulatora Galaxy_Nexus_Jelly_Bean_API_16na własną nazwę emulatora.

Poniższe polecenie służy do sprawdzenia dostępnych emulatorów dla wiersza poleceń.

$ ~/Library/Android/sdk/emulator/emulator -list-avds

Upewnij się również, że ścieżka emulatora jest poprawna, tzn. Ta zlokalizowana w ~/Library/Android/sdk/emulator/.


1

Próbowałem tego, co sugerował ChrLipp, ale to nie był problem, ponieważ obraz był już zainstalowany. To, co zrobiłem, było uruchomione:

android avd

aby ręcznie uruchomić emulator. Następnie zatrzymałem emulator i utworzyłem ten punkt na

cca emulate android

aplikacja zaczęła działać bez błędu „brak pliku jądra”.


1

Rozwiązałem ten problem, dodając zmienną środowiskową ANDROID_SDK_ROOT, w moim przypadku znajdowała się ona w C: \ Users \ fera \ AppData \ Local \ Android \ sdk


1

W moim przypadku miałem wiele błędów, z których większość dotyczyła źle skonfigurowanego ANDROID_SDK_ROOT , pod koniec dnia jedna rzecz wydawała się naprawiać to wszystko.

Wykonaj następujący proces:

Po utworzeniu nowego urządzenia emulującego w AVD, przejdź do menu Działania i kliknij strzałkę skierowaną w dół, jak pokazano poniżej.

wprowadź opis zdjęcia tutaj

Kliknij opcję Pokaż na dysku

Edytuj Config.ini

Poszukaj image.sysdir.1

powinna mieć taką wartość: ** image.sysdir.1 = obrazy systemowe \ android-28 \ google_apis_playstore \ x86 **

Twoja własna wartość może być inna

Teraz napraw ścieżkę Android SDK, aby utworzyć pełną ścieżkę.

image.sysdir.1 = ** C: \ androidsdk ** system-images \ android-28 \ google_apis_playstore \ x86 \

Jeśli zauważyłeś, ścieżka SDK Androida pokazana powyżej różni się od normalnego domyślnego SDK Androida, musiałem przenieść ją do C: / androidsdk, aby uniknąć problemów z NDK, ponieważ mój główny DOM UŻYTKOWNIKA na moim komputerze ma białe spacje, które NDK może nie obsługiwać.

UWAGA: Przeniesienie katalogu SDK z katalogu domyślnego jest zwykle przyczyną tych błędów, które podaje emulator AVD, szczególnie jeśli chodzi o uszkodzoną i źle skonfigurowaną ścieżkę. Poprawka, którą podałem powyżej, jest szybką poprawką, może być konieczne za każdym razem, gdy tworzysz nowe urządzenie w emulatorze AVD.

Ta poprawka powinna również działać podczas pracy na CMD z Cordova.


0

Chciałem tylko podzielić się swoimi doświadczeniami z tego problemu. Po zapoznaniu się z każdą z odpowiedzi tutaj nie pasowało to do mojej sytuacji. Obraz systemu Android API 22 powoduje ten błąd, a dziwne jest to, że wszystkie zmienne środowiskowe wskazują prawidłowe katalogi. To nie ma sensu.

Odpowiedź @BuvinJ rzuciła nieco światła na problem. Sprawdziłem ścieżkę opisaną w jego odpowiedzi i tak, kiedy patrzę na katalog użytkownika (w systemie Windows), moja kopia obrazu systemu znajduje się w domyślnym podfolderze.

Dziwne jest to, że w ANDROID_SDK_ROOT jest także folder Android-SDK, więc pomyślałem, że może tam Eclipse. Przeglądając podfoldery, zorientowałem się, że katalog wygląda następująco:

android-sdk-windows\system-images\android-22\google_apis\armeabi-v7a

Ten katalog znajduje się w ANDROID_SDK_ROOT. Istnieje również inny, który znajduje się w katalogu użytkownika user / XXXX / android-sdk /.

Eclipse oczekuje tego tutaj:

android-sdk-windows\system-images\android-22\default\armeabi-v7a

Właśnie zmieniłem katalog jako taki i teraz działa.


0

Zaktualizuj następujące polecenia w wierszu polecenia w systemie Windows:

i) aktualizacja systemu Android sdk --no-ui --all // Aktualizacja pakietów SDK zajmuje 3 minuty. ii) android update sdk --no-ui --filter platform-tools, tools // Aktualizuje narzędzia platformy i jej pakiety. iii) aktualizacja systemu Android sdk --no-ui --all --filter extra-android-m2repository // Ci, którzy pracują z projektem maven, aktualizują to, aby obsługiwać najnowszą bibliotekę projektów wsparcia, która będzie zawierać dodatkowe repozytorium maven dla systemu Android maven.

1) W wierszu polecenia prosi o podanie T / N. Kliknij Y, a następnie rozpocznie instalację. 2) Aktualizuje wszystkie pliki Kernel-qemu i polecenia qt5.dll. dzięki czemu emulator działa dobrze bez żadnych problemów.



-1

Rozwiązałem ten problem, aktualizując Narzędzia SDK i Narzędzia platformy w Menedżerze SDK Androida do najnowszej wersji.

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.