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.

shoujo_sm
źródło
ten sam problem: stackoverflow.com/questions/8190820/scala-android-newbie - utwórz nowy AVD
zapl
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 .

ChrLipp
źródło
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ą.

KCD
źródło
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 ...

jptsetung
źródł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.

nerdinand
źródł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.

CKP78
źródł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.

użytkownik3313044
źródło
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!

BuvinJ
źródło
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.

kmantel
źródło
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.

Jack Hu
źródło
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).

użytkownik2789389
źródło
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ń

snaphuman
źródło
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.

manyu
źródło
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/.

Shizhen
źródło
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”.

Marc Rochkind
źródło
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

Fera
źródło
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.

Akintunde
źródło
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.

Neon Warge
źródło
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.

użytkownik12654796
źródło
-1

Dla mnie aktualizacja narzędzi SDK naprawiła błędy.

Zrzut ekranu przedstawiający błędy i postęp aktualizacji

Fazal Arya
źródło
-1

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

Alexander Andrade
źródło