Emulatorfehler: In der Konfiguration dieser AVD fehlt eine Kerneldatei

183

Dieses Problem wurde entdeckt, als ich versuchte, den Android-Emulator in Eclipse auszuführen. Ich kann nicht herausfinden, was passiert ist. Ich habe online nach der Lösung gesucht, aber sie schien vage zu sein und ich verstehe sie nicht klar. Ich habe die Schritte zum Installieren der AVD gemäß den Websites befolgt und kann nicht herausfinden, was ich verpasst habe. Bitte erklären Sie es mir in den folgenden Schritten.

shoujo_sm
quelle
gleiches Problem: stackoverflow.com/questions/8190820/scala-android-newbie - erstellen Sie eine neue AVD
zapl
1
Auf einem Mac konnte es immer noch nicht gestartet werden; Die Verwendung einer Reparatur an der AVD funktionierte für mich. stackoverflow.com/a/15971119/664220
Ronnie
Das Neustarten von Eclipse nach der Installation des ARM-Images und dem Erstellen einer neuen AVD hat bei mir funktioniert.
Simon
Möglicherweise kann dieser Link helfen: developer.android.com/tools/help/avd-manager.html
Abhijeet

Antworten:

254

Das "ARM EABI v7a System Image" muss verfügbar sein. Installieren Sie es über den Android SDK-Manager: Android SDK Manager

Noch ein Hinweis (siehe hier ) - mit

  • Android SDK Tools Version 17 oder höher
  • Android 4.0.3 (API Level 15)
  • Verwenden von SDK Version 3 und System Image Version 2 (oder höher)

Sie können die GPU-Emulation aktivieren, um einen schnelleren Emulator zu erhalten: Geben Sie hier die Bildbeschreibung ein

Hinweis: Laut you786-Kommentar müssen Sie den Emulator neu erstellen, wenn Sie ihn zuvor erstellt haben. Andernfalls funktioniert dies nicht.

Alternative 1
Intel bietet den " Intel Hardware Accelerated Execution Manager ", einen VM-basierten Emulator zur Ausführung von X86-Images, der auch vom Android SDK Manager bereitgestellt wird. Ein Tutorial für den Intel-Emulator finden Sie hier: HAXM beschleunigt den Android-Emulator . Roman Nurik schreibt hier, dass der Intel-Emulator mit Android 4.3 "blitzschnell" ist.

Alternative 2
In den Kommentaren des obigen Beitrags finden Sie einen Verweis auf Genymotion, der behauptet, der "schnellste Android-Emulator für App-Tests und -Präsentationen" zu sein. Genymotion läuft auf VirtualBox. Siehe auch ihre Website auf Google+ , diesen Beitrag von Cyril Mottier und diesen Leitfaden auf reddit .

Alternative 3
In XDA-Foren habe ich über MEmu gelesen - den leistungsstärksten Android-Emulator für PC, besser als Bluestacks . Den Emulator finden Sie hier . Das bringt mich zu ...

Alternative 4
... dieser XDA-Forum-Eintrag: Wie man THE FAST benutzt! BlueStack als alternativer Android-Entwicklungsemulator . Den Emulator finden Sie hier .

ChrLipp
quelle
1
Leider stürzt bestimmte ATI-Karten ab, wenn die GPU-Emulation aktiviert ist - ich freue mich auf einen aktualisierten Emulator.
ChrLipp
23
Ich stellte fest, dass ich den Emulator löschen und nach der Installation neu erstellen musste, um dieses Problem zu lösen.
you786
3
@ you786 Ja, es ist wichtig, es neu zu erstellen
Bobs
1
Ich habe alles getan, aber es ist immer noch da, während ich den Simulator
starte
Siehe meine Antwort unten.
Marc Rochkind
22

Ein weiterer Grund für diesen Fehler ist, dass Eclipse die richtige Datei nicht finden kann.

Überprüfen Sie, wo Eclipse nach Ihren SDK-Dateien sucht. Sie können dies in der Befehlszeile tun. Unten finden Sie ein Beispiel für die Windows-Eingabeaufforderung für einen von mir erstellten AVD mit dem Namen "SonyTabletS":

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

Die erste zurückgegebene Zeile zeigt, wo Eclipse nach den SDK-Dateien sucht und sieht ungefähr so ​​aus:

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

Stellen Sie sicher, dass der Ort korrekt ist.

In meinem Fall ANDROID_SDK_ROOTwurde zunächst falsch auf mein Home-Verzeichnis gesetzt. Dies liegt daran, dass ich dies so eingestellt habe, indem ich blind den Installationsanweisungen für das Sony Tablet S SDK gefolgt bin und eine ANDROID_SDK_ROOTUmgebungsvariable mit dem falschen Pfad hinzugefügt habe .

KCD
quelle
In meinem Fall wurde Android \ android-studio \ sdk den Speicherort ANDROID_SDK_ROOT übernommen, während ich den Emulator aus dem Ordner Android \ android-sdk ausführe. Sobald es richtig auf Android \ android-sdk zeigt, funktioniert es.
Noel Aye
Das war es für mich. Meine Build-Umgebung verwendet ein ANDROID_SDK_ROOT, das ich nicht einfach aktualisieren kann. Das Update bestand darin, eine saubere Eingabeaufforderung zu starten und ANDROID_SDK_ROOT auf die richtige zu setzen und den SDK-Manager von dort aus zu starten.
Doug Coburn
Stellen Sie sicher, dass nicht versehentlich zwei Kopien des SDK installiert sind. Wenn Sie wie ich sind, haben Sie das "ARM EABI v7a System Image" in einer Kopie installiert, aber die AVD hat versucht, es in der anderen Kopie zu finden. Ich habe eine meiner Kopien des SDK entfernt und dann hat mein Emulator sofort gestartet.
sffc
In meinem Fall zeigt mein SDK-Ordner auf das richtige Verzeichnis.
Neon Warge
16

Meine Geschichte, Eclipse wollte eine Datei namens " kernel-ranchu" im System-Image-Ordner ( /path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a).

Emulator: FEHLER: In der Konfiguration dieser AVD fehlt eine Kerneldatei! Stellen Sie sicher, dass sich die Datei "kernel-ranchu" am selben Speicherort wie Ihr System-Image befindet.

Emulator: FEHLER: ANDROID_SDK_ROOT ist undefiniert

In diesem System-Image-Ordner befand sich eine Datei mit dem Namen " kernel-qemu". Ich habe es einfach in " kernel-ranchu" umbenannt und es hat funktioniert ...

jptsetung
quelle
4
In meinem Fall war es umgekehrt
Urnenfeld
15

Ich hatte das gleiche Problem. In meinem Fall stellte sich heraus, dass ich neben der von Android Studio bereitgestellten Version eine andere Version des SDK installiert hatte. Durch Ändern meiner Umgebungsvariablen ANDROID_SDK_ROOT auf den ursprünglichen Wert wurde dies für mich behoben.

Nerdinand
quelle
1
Es ist wichtig zu beachten, dass dies eine ebenso gültige Antwort ist wie die Top-Antwort für den Fall, dass das SDK zuvor vor Android Studio installiert wurde. Der Fehler ist, dass Android Studio feststellen sollte, dass ANDROID_SDK_ROOT bereits auf einen anderen Speicherort festgelegt ist, und den Benutzer während der Installation warnen sollte.
Core
Kern ist richtig. Ich habe heute von Eclipse zu Android Studio gewechselt und dies hat das Problem für mich behoben.
Pikamander2
11

Hier ist meine Geschichte. Unter "Aktionen" im AVD-Manager habe ich die Details für die AVD angezeigt, die nicht funktionierten. Beim Scrollen nach unten fand ich die Zeile:

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

Ich habe dann zu dieser Datei navigiert unter:

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

Ich fand, dass es keine Kernel-Datei gab. Ich habe jedoch eine Kerneldatei gefunden unter:

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

Also habe ich es kopiert und wieder eingefügt in:

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

Die AVD funktionierte dann.

CKP78
quelle
Danke, das hat es gelöst! Ich denke, das muss ein Fehler oder etwas sein, weil es ein sehr seltsames Verhalten ist
Hugo
7

Öffnen Sie den AVD Manager im Administratormodus. Wählen Sie VM aus und klicken Sie auf Bearbeiten. Klicken Sie auf OK. VM starten.

Anmerkung des Herausgebers : Mit Administratormodus meinte er Rechtsklick> Als Administrator auf Windows-Plattformen ausführen.

user3313044
quelle
Was / wo ist der Administratormodus?
Ericpeters0n
Ich kann VM für Mac OS nicht finden
Frank Fang
4

Wenn Sie wissen, dass die Kerneldatei auf Ihrem Computer installiert ist, besteht das Problem darin, dass emulator.exe sie findet.

Mein Fix basierte auf dem Beitrag von user2789389. Ich könnte die AVD über den AVD-Manager starten, aber nicht über die Befehlszeile. Also habe ich mit AVD Manager die AVD ausgewählt, die ich ausführen wollte, und auf "Details" geklickt. Das zeigte mir den Pfad zur avd-Definitionsdatei. In einem gleichnamigen Ordner neben dieser .avd-Datei habe ich eine config.ini-Datei gefunden. In der INI fand ich die folgende Zeile:

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

Ich habe im Ordner C: \ Benutzer \ XXXX \ android-sdks \ system-images \ android-19 nachgesehen und festgestellt, dass der Pfad image.sysdir.1 ungültig ist. Ich musste den "Standard" -Unterordner entfernen und ihn folgendermaßen ändern:

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

Ich habe die INI gespeichert und erneut versucht, die AVD zu starten. Das hat das Problem behoben!

BuvinJ
quelle
Dies hat es nicht behoben. In meinem Fall habe ich das Systembild im Standardunterordner.
Neon Warge
Sie müssen mich nicht abstimmen, weil Sie ein anderes Problem haben! Das macht meine Antwort nicht falsch.
BuvinJ
Haben Sie auch hier jeden anderen Beitrag abgelehnt, weil er Ihr Problem nicht gelöst hat?
BuvinJ
Dies hat das Problem für mich behoben. Ich verwende einen Mac und der Pfad zeigte auf image.sysdir.1 = Add-Ons / Addon-Google_APIS-Google-16 / Images / Armeabi-V7A und wechselte zu System-Images / Android -16 / default / armeabi-v7a hat das Problem behoben
Felipe
3

Stellen Sie sicher, dass Sie auch ein emuliertes Gerät ordnungsgemäß konfiguriert haben. Android Studio wird möglicherweise mit einem Gerät geliefert, das in der Liste der emulierten Geräte angezeigt wird, jedoch nicht für die von Ihnen verwendete SDK-Version geeignet ist.

Versuchen Sie, ein neues emuliertes Gerät im AVD-Manager (Extras-> Android> AVD-Manager) zu erstellen und dieses als Ziel auszuwählen.

kmantel
quelle
Der Versuch, diesen Weg einzuschlagen, ließ mich wissen, dass HAXM nicht tatsächlich installiert war, obwohl es zeigte, dass dies der Fall war. Ich wurde aufgefordert, Intel HAXM zu installieren.
Lodlaiden
2

Ich habe heute den Android SDK-Manager und das Android SDK installiert und erhalte diesen Fehler auch, als ich versuchte, den Android-Emulator sofort auszuführen. Aber im Moment verschwindet dieser Fehler. Ich denke, ein Neustart Ihres Systems nach der Installation des SDK kann dieses Problem lösen.

Jack Hu
quelle
2

Ein einzigartiger intelligenter Gedanke kam mir nach einem langen Tag der Reparatur / des Umbaus / der Aktualisierung des SDK / NDK & JDK. Die Umgebungsvariablen müssen untersucht werden, da die Korrektur für meine fehlende AVD-Kernel-Datei 'GalaxyS3' darin bestand, den System-Image-Verweis auf absolut zu erweitern.

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

Das Hinzufügen des "C: .... sdk \" zum Eintrag "image.sysdir.1 =" in der Datei "workspace" .android \ avd \ GalaxyS3.avd \ config.ini löste das Problem (vorerst).

user2789389
quelle
2

Ich habe mein Android SDK auf die neueste Version (API 19) aktualisiert. Als ich versuchte, den Emulator mit Phonegap 3 auszuführen, war der Build erfolgreich, aber es wurde das gleiche Problem ausgeführt.

Im AVD-Manager gab es ein vorhandenes Gerät, dessen Parameter jedoch alle unbekannt waren. Dies tritt sicherlich auf, weil ich die alte SDK-Version (API 17) deinstalliert habe, die beim Versuch, das Gerät zu entfernen, einen zweiten Fehler zurückgibt. Mit der Meldung: "Gerät läuft bereits"

Um das Problem zu lösen, ging ich zum Speicherort der AVD in ~ / .android / avd / und entfernte manuell die Dateien device directory.avd und device.ini. Schließlich habe ich im Geräte-Manager eine neue AVD erstellt, die von der neuesten API bereitgestellt wird.

Dadurch konnte Phonegap den Emulator erfolgreich erstellen und ausführen

ich hoffe das hilft

Schönen Tag

Snaphuman
quelle
2

Nach der akzeptierten Antwort von ChrLipp mit Android Studio 1.2.2 in Ubuntu 14.04:

  • Installieren Sie das Paket "ARM EABI v7a System Image" vom Android SDK-Manager.
  • Löschen Sie das nicht funktionierende virtuelle Gerät.
  • Fügen Sie ein neues Gerät mit Application Binary Interface (ABI) als armeabi-v7a hinzu.
  • Starten Sie das neue Gerät.

Das hat bei mir funktioniert. Versuchen Sie, Ihr System neu zu starten, wenn es für Sie nicht funktioniert.

manyu
quelle
2

Siehe meine Antwort für die Android Studio-Umgebung , Mac und "PANIC: Fehlendes Emulator-Engine-Programm für 'Arm'-CPU". .

Um dieses Problem zu lösen, müssen Sie den -kernelPfad manuell angeben . dh

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

Denken Sie daran, den Emulatornamen Galaxy_Nexus_Jelly_Bean_API_16in Ihren eigenen Emulatornamen zu ändern .

Mit dem folgenden Befehl können Sie die für die Befehlszeile verfügbaren Emulatoren überprüfen.

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

Stellen Sie außerdem sicher, dass Ihr Emulatorpfad korrekt ist, dh der unter ~/Library/Android/sdk/emulator/.

shizhen
quelle
1

Ich habe versucht, was ChrLipp vorgeschlagen hat, aber das war nicht das Problem, da das Image bereits installiert war. Was ich getan habe war gelaufen:

android avd

um den Emulator manuell zu starten. Dann stoppte ich den Emulator und bildete diesen Punkt auf dem

cca emulate android

Die App hat funktioniert, ohne dass der Fehler "Kernel-Datei fehlt" aufgetreten ist.

Marc Rochkind
quelle
1

Ich habe dieses Problem behoben, indem ich nur die Umgebungsvariable ANDROID_SDK_ROOT hinzugefügt habe. In meinem Fall befand sich diese unter C: \ Users \ fera \ AppData \ Local \ Android \ sdk

fera
quelle
1

In meinem Fall hatte ich mehrere Fehler, von denen die meisten falsch konfigurierte ANDROID_SDK_ROOT betrafen . Letztendlich schien eine Sache das Ganze zu beheben.

Befolgen Sie den folgenden Vorgang:

Gehen Sie nach dem Erstellen des neuen Emulatorgeräts auf AVD zum Menü Aktionen und klicken Sie auf den Pfeil nach unten, wie unten gezeigt.

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Auf Festplatte anzeigen

Bearbeiten Sie Config.ini

Suchen Sie nach image.sysdir.1

Es sollte einen Wert wie den folgenden haben: ** image.sysdir.1 = system-images \ android-28 \ google_apis_playstore \ x86 **

Ihr eigener Wert kann anders sein

Korrigieren Sie nun den Pfad des Android Sdk, um einen vollständigen Pfad zu erstellen.

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

Wenn Sie bemerkt haben, dass sich der oben gezeigte Android SDK-Pfad vom normalen Standard-Android SDK unterscheidet, musste ich ihn nach C: / androidsdk verschieben , um NDK-Probleme zu vermeiden, da mein Hauptbenutzer-HOME auf meinem PC Leerzeichen hat, die NDK möglicherweise nicht unterstützt.

ANMERKUNG: Das Verschieben des SDK-Verzeichnisses aus seinem Standardverzeichnis ist normalerweise die Ursache für diese Fehler, die der AVD-Emulator verursacht, insbesondere in Bezug auf fehlerhafte und falsch konfigurierte Pfade. Die oben angegebene Korrektur ist eine schnelle Lösung. Möglicherweise müssen Sie dies jedes Mal tun, wenn Sie ein neues Gerät in AVD Emulator erstellen.

Dieser Fix sollte auch funktionieren, wenn Sie mit Cordova an CMD arbeiten.

Akintunde
quelle
0

Ich wollte nur meine Erfahrungen mit diesem Problem teilen. Wenn ich jede der Antworten hier konsultiere, passt sie nicht zu meiner Situation. Ein Systemabbild für Android API 22 verursacht diesen Fehler und das Seltsame ist, dass alle Umgebungsvariablen auf die richtigen Verzeichnisse verweisen. Es macht keinen Sinn.

Die Antwort von @BuvinJ hatte etwas Licht in das Problem gebracht. Ich habe den in seiner Antwort beschriebenen Pfad überprüft und ja, meine Kopie des Systemabbilds befindet sich unter der Standardeinstellung des Unterordners, wenn ich das Benutzerverzeichnis (unter Windows) betrachte.

Das Seltsame ist, dass es auch einen android-sdk-Ordner im ANDROID_SDK_ROOT gibt, also dachte ich, vielleicht sucht Eclipse dort. Beim Durchsuchen der Unterordner stellte ich fest, dass das Verzeichnis folgendermaßen aussieht:

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

Dieses Verzeichnis befindet sich in ANDROID_SDK_ROOT. Es gibt auch eine andere im Benutzerverzeichnis user / XXXX / android-sdk /.

Eclipse erwartet es hier:

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

Einfach das Verzeichnis als solches geändert und es funktioniert jetzt.

Neon Warge
quelle
0

Aktualisieren Sie die folgenden Befehle an der Eingabeaufforderung in Windows:

i) android update sdk --no-ui --all // Es aktualisiert deine SDK-Pakete und es dauert 3 Minuten. ii) android update sdk --no-ui --filter plattform-tools, tools // Es aktualisiert die Plattform-Tools und ihre Pakete. iii) android update sdk --no-ui --all --filter extra-android-m2repository // Diejenigen, die mit maven project arbeiten, aktualisieren dies, um die neueste Support-Designbibliothek zu unterstützen, die extra maven android maven Repository enthält.

1) In der Eingabeaufforderung werden Sie nach J / N gefragt. Klicken Sie auf J, und fahren Sie mit der Installation fort. 2) Es aktualisiert alle Kernel-qemu-Dateien und qt5.dll-Befehle. Damit der Emulator problemlos funktioniert.

user12654796
quelle
-1

Durch das Aktualisieren der SDK-Tools wurden die Fehler behoben.

Screenshot der Fehler und Aktualisierungsfortschritt

Fazal Arya
quelle
-1

Ich habe dieses Problem gelöst, indem ich SDK Tools und Platform-Tools im Android SDK Manager auf die neueste Version aktualisiert habe.

Alexander Andrade
quelle