Es kann verschiedene Probleme geben, wenn Sie Ihre AVD oder Ihr SDK in ein anderes Verzeichnis verschieben oder ein altes SDK durch ein neues ersetzen oder das SDK irgendwie beschädigen.
Im Folgenden beschreibe ich alle möglichen Probleme, die ich kenne, und gebe Ihnen verschiedene Möglichkeiten, sie zu lösen.
Natürlich gehe ich davon aus, dass Sie eine AVD erstellt haben und diese sich in befindet C:\Users\<user_name>\.android\avd
(Windows) oder ~/.android/avd
(Linux / MacOS) befindet.
Wenn Sie .android
an einen anderen Ort gezogen sind, setzen Sie die ANDROID_SDK_HOME
Umgebungsvariable auf den Pfad des übergeordneten Verzeichnisses, in dem sich Ihr Verzeichnis befindet, .android
und stellen Sie sicher, dass der AVD-Manager vorhanden ist Ihr virtuelles Gerät erfolgreich gefunden hat.
Überprüfen Sie auch die Pfade <user_home>/.android/avd/<avd_name>.ini
Unvollständige / beschädigte SDK-Struktur
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
Diese beiden Fehler treten auf, wenn der Emulator das SDK nicht finden kann oder das SDK defekt ist.
Daher empfehle ich zunächst, die ANDROID_SDK_ROOT
Variable überhaupt zu entfernen . Es wird nur benötigt, wenn sich der Emulator außerhalb des SDK-Verzeichnisses befindet. Im Allgemeinen bleibt Ihr Emulator jedoch im SDK-Verzeichnis. In diesem Fall muss der SDK-Speicherort automatisch erkannt werden . Wenn dies nicht der Fall ist, hat Ihr SDK wahrscheinlich einen falschen Dateibaum. Bitte machen Sie folgendes:
Überprüfen Sie, ob das SDK - Verzeichnis hat mindestens diese vier Verzeichnisse: emulator
, platforms
, platform-tools
, system-images
. Es ist sehr wichtig! Diese Verzeichnisse müssen vorhanden sein. Wenn einige von ihnen nicht existieren, erstellen Sie einfach leere Verzeichnisse.
Gehe zu <user_home>/.android/avd/<avd_name>
und öffne config.ini
. Finden Sie die image.sysdir.1
Eigenschaft. Es zeigt auf das Verzeichnis im SDK-Verzeichnis, das das eigentliche Systemabbild enthält. Stellen Sie sicher , dass dieses Verzeichnis existiert und enthält Dateien wie build.prop
, system.img
etc. Wenn es nicht der Fall ist, dann müssen Sie das öffnen SDK - Manager und Download - System Bilder Ihre AVD erfordert (siehe unten).
Wenn alles richtig eingerichtet ist, müssen diese Fehler ANDROID_SDK_ROOT
behoben sein. Wenn dies nicht der Fall ist, können Sie jetzt versuchen, eine ANDROID_SDK_ROOT
Variable einzurichten .
Erforderliche Pakete und HAXM sind nicht installiert
Das nächste Problem besteht darin, dass der Emulator gestartet wird, aber auflegt oder sofort beendet wird. Das bedeutet wahrscheinlich, dass Sie nicht alle erforderlichen Pakete installiert haben.
Ein weiterer möglicher Fehler ist:
Eine ADB-Binärdatei konnte nicht automatisch erkannt werden. Einige Emulatorfunktionen funktionieren erst, wenn auf der Seite mit den erweiterten Einstellungen ein benutzerdefinierter Pfad zu ADB hinzugefügt wird.
Um eine AVD erfolgreich zu starten, müssen Sie sicherstellen, dass mindestens diese Pakete installiert sind:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
Und wie bereits erwähnt, müssen Sie beispielsweise System-Images installieren, die Ihre AVD verwendet system-images;android-25;google_apis;x86
Beachten Sie, dass die neuesten Versionen des SDK nicht eigenständig sind SDK Manager.exe
. Stattdessen müssen Sie entweder Android Studio verwenden oder tools\bin\sdkmanager.bat
(Linux / MacOS wahrscheinlich habensh
Dateien).
Um alle verfügbaren Pakete aufzulisten, verwenden Sie sdkmanager --list
odersdkmanager --list --verbose
Um Pakete zu installieren, verwenden Sie sdkmanager <package1> <package2> ...
Außerdem empfehle ich, HAXM manuell auf Ihrem System zu installieren .
Qcow2-Dateien beziehen sich auf falsche / nicht vorhandene Basis-Images
Das letzte Problem, das ich erwähnen werde, tritt auf, wenn Sie versuchen, AVD oder SDK von einem Computer oder Verzeichnis auf einen anderen zu verschieben. In diesem Fall kann folgende Fehlermeldung angezeigt werden:
qemu-system-i386.exe: -drive if = none, Overlap-Check = none, Cache = unsicher, Index = 0, ID = System, Datei =C:\Users\<old_user_name>\.android\avd\<avd_name>
.
avd \ system.img.qcow2, schreibgeschützt: Sicherungsdatei konnte nicht geöffnet werden: ' <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
' konnte nicht geöffnet werden : Ungültiges Argument
Es gibt zwei Möglichkeiten, dies zu beheben:
Wenn Sie sich nicht für die Daten interessieren, die die AVD enthält, löschen Sie einfach alle qcow2
Dateien aus dem AVD-Verzeichnis (z <user_home>/.android/avd/<avd_name>
. B. von ). In diesem Fall erhalten Sie eine saubere Version von Android, wie nach einem Hard-Reset.
Wenn Ihnen die Daten auf dem Emulator wichtig sind, öffnen Sie alle qcow2
Dateien nacheinander mit einem beliebigen HEX-Editor (ich bevorzuge HxD ), suchen Sie den Pfad einer Basisdatei img
und ändern Sie ihn im Overwrite
Modus in den richtigen (um die zu erhalten) Dateigröße). Wählen Sie dann den Pfad aus und erhalten Sie seine Länge in hexadezimaler Form (z 2F
. B. ). 2F
repräsentiert den ASCII-Schrägstrich /
. Setzen Sie es in Position 13
:
PS: Ich bin mir nicht sicher, aber es gibt wahrscheinlich einige Dienstprogramme wie qemu-img , mit denen Sie ein anderes Basis-Image festlegen können. Für mich ist es einfacher, die Binärdatei manuell zu bearbeiten.
Jetzt können Sie Ihr virtuelles Android-Gerät wahrscheinlich erfolgreich starten. Hoffentlich :)