wake-up-neo.com

PANIC: Fehlerhafter AVD-Systempfad. Überprüfen Sie Ihren Android_SDK_ROOT-Wert

Nachdem Sie cordova run Android im Terminal eingegeben haben, erhalte ich folgende Fehlermeldung:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your Android_SDK_ROOT value [/Users/username/Library/Android/sdk]!

Dies geschieht nach dem Exportieren:

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'

Vor dem Export bekam ich:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define Android_SDK_ROOT

Irgendwelche Ideen wo ich falsch liege? Ich bin mir sicher, dass dies der Sdk-Stamm ist. Warum bekomme ich einen kaputten AVD-Pfad?

73
d.boyd

Es können verschiedene Probleme auftreten, wenn Sie Ihr AVD oder SDK in ein anderes Verzeichnis verschieben oder ein altes SDK durch ein neues ersetzen oder das SDK irgendwie beschädigt bekommen.

Im Folgenden beschreibe ich alle möglichen Probleme, die ich kenne, und gebe Ihnen verschiedene Wege, um sie zu lösen.

Ich gehe natürlich davon aus, dass Sie eine AVD erstellt haben, die sich in C:\Users\<user_name>\.Android\avd (Windows) oder ~/.Android/avd (Linux/MacOS) befindet.

Wenn Sie .Android an einen anderen Ort verschoben haben, setzen Sie die Umgebungsvariable Android_SDK_HOME auf den Pfad des übergeordneten Verzeichnisses, das Ihren .Android enthält, und stellen Sie sicher, dass AVD Manager Ihr virtuelles Gerät erfolgreich gefunden hat.

Überprüfen Sie auch die Pfade in <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 zwei Fehler treten auf, wenn der Emulator das SDK nicht finden kann oder das SDK beschädigt ist. 

Daher empfehle ich zunächst, die Variable Android_SDK_ROOT zu entfernen. Sie wird nur benötigt, wenn sich der Emulator außerhalb des SDK-Verzeichnisses befindet. Im Allgemeinen bleibt Ihr Emulator jedoch im SDK-Verzeichnis. Und in diesem Fall muss der SDK-Speicherort automatisch erkannt werden. Wenn dies nicht der Fall ist, hat Ihr SDK möglicherweise einen falschen Dateibaum. Bitte machen Sie folgendes:

  1. Stellen Sie sicher, dass das SDK-Verzeichnis mindestens diese 4 Verzeichnisse hat: emulator, platforms, platform-tools, system-images. Es ist sehr wichtig! Diese Verzeichnisse müssen vorhanden sein. Wenn einige nicht existieren, erstellen Sie einfach leere Verzeichnisse.

  2. Gehen Sie zu <user_home>/.Android/avd/<avd_name> und öffnen Sie config.ini. Suchen Sie die image.sysdir.1-Eigenschaft. Es zeigt auf das Verzeichnis innerhalb des SDK-Verzeichnisses, das das tatsächliche Systemabbild enthält. Stellen Sie sicher, dass dieses Verzeichnis vorhanden ist und Dateien wie build.prop, system.img usw. enthält. Wenn dies nicht der Fall ist, müssen Sie SDK Manager öffnen und Systemabbilder herunterladen, die für Ihre AVD erforderlich sind (siehe unten).

Wenn alles richtig eingerichtet ist, dann müssen diese Fehler bezüglich Android_SDK_ROOT verschwunden sein. Wenn dies nicht der Fall ist, können Sie jetzt die Variable Android_SDK_ROOT einrichten.


Erforderliche Pakete und HAXM werden nicht installiert

Das nächste Problem, mit dem Sie möglicherweise konfrontiert werden, 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:

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.

Damit Sie eine AVD erfolgreich starten können, müssen Sie sicher sein, dass mindestens diese Pakete installiert sind:

emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)

Wie bereits erwähnt, müssen Sie System-Images installieren, die Ihr AVD verwendet, zum Beispiel system-images;Android-25;google_apis;x86.

Beachten Sie, dass die aktuellsten Versionen von SDK keinen eigenständigen SDK Manager.exe haben. Stattdessen müssen Sie entweder Android Studio oder tools\bin\sdkmanager.bat verwenden (Linux/MacOS haben wahrscheinlich sh-Dateien).

Um alle verfügbaren Pakete aufzulisten, verwenden Sie sdkmanager --list oder sdkmanager --list --verbose

Verwenden Sie sdkmanager <package1> <package2> ..., um Pakete zu installieren.

Ich empfehle außerdem, HAXM manuell auf Ihrem System zu installieren.


Qcow2-Dateien verweisen auf fehlerhafte/nicht vorhandene Basisbilder

Das letzte Problem, das ich erwähne, tritt auf, wenn Sie versuchen, AVD oder SDK von einem Computer oder Verzeichnis auf einen anderen zu verschieben. In diesem Fall erhalten Sie möglicherweise einen solchen Fehler:

qemu-system-i386.exe: -drive if = none, Überlappungsprüfung = none, cache = unsicher, index = 0, id = system, file = 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, das Problem zu beheben:

  1. 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. B. aus <user_home>/.Android/avd/<avd_name>). In diesem Fall erhalten Sie eine saubere Version von Android, z. B. nach einem Hard-Reset.

  2. Wenn die Daten auf dem Emulator für Sie wichtig sind, öffnen Sie alle qcow2-Dateien nacheinander mit einem beliebigen HEX-Editor (ich bevorzuge HxD ), suchen Sie den Pfad einer img-Basisdatei und ändern Sie sie in den korrekten der Overwrite-Modus (um die Dateigröße zu erhalten). Wählen Sie dann den Pfad aus und erhalten Sie seine Länge in Hexadezimalzeichen (z. B. 2F). 2F steht für den Schrägstrich ASCII /. Setzen Sie es in Position 13:

 Edit Android qcow2 files using HxD HEX editor

PS: Nicht sicher, aber es gibt wahrscheinlich einige Funktionen wie qemu-img , die es erlauben, ein anderes Basis-Image einzustellen. Für mich ist es einfacher, die Binärdatei manuell zu bearbeiten.


Jetzt können Sie wahrscheinlich Ihr virtuelles Android-Gerät erfolgreich starten. Hoffentlich :)

90
Oleg Cherr

Auf dem Mac: Ich hatte Android-sdk mit brew sowie Android Studio installiert. Irgendwie verursachten 2 Installationen dieses Problem. Als ich meine Brew-Installation von sdk mit brew cask uninstall Android-sdk deinstallierte und die folgenden vars zu meinem Env hinzufügte. Es funktionierte.

export Android_HOME=/Users/<Username>/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
87
EFreak

Dies bedeutet, dass Ihr Pfad zu Tools falsch ist. So sieht es auf einem Mac mit Brew aus. Beachten Sie die Version.

export Android_SDK_ROOT='/usr/local/Cellar/Android-sdk/24.4.1_1'

In Ihrem Fall sollten Sie Folgendes ausführen:

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'
14
TechnoTim

Damit lösen Sie Ihr Problem in macOS:

pico ~/.bash_profile

export Android_HOME=/Users/$USER/Library/Android/sdk
export Android_SDK_HOME=/Users/$USER/Library/Android/sdk
export Android_AVD_HOME=/Users/$USER/.Android/avd
export PATH=${PATH}:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_AVD_HOME

source ~/.bash_profile
8
cuasijoe
  • Das Verzeichnis Platfoms fehlt in/usr/local/share/Android-sdk .

  • Ich habe ein leeres Verzeichnis mit dem Namen Plattformen erstellt, mit dem das Problem behoben wurde.

4
Olivier Maina

ok ich kann Android von Cordova ausführen, ich habe Android_HOME geändert zu,

export Android_HOME=/usr/local/opt/Android-sdk
4
d.boyd

Sie sollten den AVD-Emulator hinzufügen . Gehen Sie zu diesem Speicherort:

C:\Users\%username%\AppData\Local\Android\sdk\

starten Sie AVD Manager und klicken Sie in der zweiten Registerkarte (Gerätedefinitionen) auf die Schaltfläche "createAVD".

3
Blagojce

Ich hatte das gleiche Problem in meinem Windows10,
Isolierte mein Problem, indem Sie die folgenden Schritte ausführen.
Öffnen Sie Android Studio
- Werkzeuge
- SDK Manager
- Android-SDK-Speicherort kopieren
Standort des Android SDK
Systemumgebungsvariable festlegen
Android_HOME und Android_SDK_ROOT
Systemumgebungsvariable

3
psaren

Ich habe heute dieses Problem gelöst und es geschafft, es zu lösen.

Emulator: [140735565005632]: FEHLER: Android/android-emu/Android/qt/qt_setup.cpp: 28: Qt-Bibliothek nicht gefunden unter/Benutzer/Name_des_Benutzers/Bibliothek/Android/SDK/Emulator/lib64/qt/lib

15:08 Emulator: '/ Benutzer/Ihr_Benutzername/Bibliothek/Android/sdk/Emulator/qemu/darwin-x86_64/qemu-system-x86_64' konnte nicht gestartet werden: Keine solche Datei oder Verzeichnis

Die Lösung war ziemlich einfach. Installieren Sie den Android-Emulator einfach über Android Studio => Tools => Android => SDK-Manager => SDK-Tools => Wählen Sie Android Emulator => Apply aus

Ich verwende ein MacBook Pro unter macOS High Sierra. Ich glaube, Ihr Computer hat nichts mit diesem Problem zu tun. Der Emulator wird offensichtlich nicht installiert, wenn der Installations-Manager von Android Studio zum ersten Mal ausgeführt wird, zumindest für mich mit Android Studio 3.0.1

Stellen Sie außerdem sicher, dass Ihre Pfade in Ihrer .bashrc oder .zshrc wie folgt definiert sind:

export Android_HOME=/Users/your_user_name/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
export PATH=$PATH:$Android_HOME/emulator
export PATH=$PATH:$Android_HOME/tools
export PATH=$PATH:$Android_HOME/platform-tools
2
IsNotDefined

Wie @EFreak habe ich die Android-SDK mit Homebrew (einem Paketmanager für Macs) installiert. Ich musste das tun, weil ich die Einheimischen-Tutorials verfolgte. Wenn Sie möchten, dass ich die Brew-Version über die Android-SDK-Version verwenden möchte, verwenden Sie diese Antwort (dies ermöglicht Ihnen die Verwendung der Nativescripts tns run Android API), und wenn Sie möchten, dass Android Studio-Standard-Android-SDK die Antwort von EFRERE folgt.

Grundsätzlich müssen Sie lediglich den Standort Ihres Android SDK in Android Studio ändern. Öffnen Sie zunächst ein Projekt in Android Studio. Öffnen Sie dann den SDK-Manager, indem Sie auf diese Schaltfläche klicken.

 Android sdk manager button location

Wenn die Standardeinstellungen für den Android SDK-Manager angezeigt werden, müssen Sie neben dem Speicherort des Android SDK auf Bearbeiten klicken.

 enter image description here

Als Nächstes müssen Sie den Sdk-Speicherort auf dem Setup-Bildschirm der Sdk-Komponenten tatsächlich aktualisieren. Meine brew Android-sdk befindet sich hier /usr/local/share/Android-sdk.

 enter image description here

Beenden Sie den Assistenten, indem Sie alle Pakete installieren. Ich musste meine Geräteemulatoren in diesem Schritt löschen und neu erstellen, aber danach schien es gut zu funktionieren.

2
John

In meinem Fall war es kaputt, weil Android_HOME und Android_SDK_ROOT unterschiedlich waren. Sobald ich Android_HOME als Android_SDK_ROOT eingestellt habe, funktionierte es.

2
jc12

Prüfen Sie, ob das von Ihrem AVD verwendete System-Image unter $Android_SDK_ROOT/system-images/ heruntergeladen wurde.

2
aleung

Um dieses Problem zu lösen, musste ich das Paket mit dem fehlenden Systemabbild mithilfe von SDK Manager.exe (in "C:\Programme (x86)\Android\android-sdk") installieren. Mir war aufgefallen, dass das benötigte Systemabbild ("Android-23") in "C:\Programme (x86)\Android\android-sdk\system-images" fehlte.

Nach dem Ausführen von SDK Manager.exe und der Installation der entsprechenden Pakete konnte ich den Emulator in Android Studio ausführen.

Hier ist die Lösung, die für mich funktioniert hat:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/Android/de/creating_an_Android_emulator.html

1
Glauber

NativeScript

Für alle, die Probleme haben, den Android Emulator über NativeScript zu starten, wurden wahrscheinlich die Versionen Android_HOME und Android_SDK_ROOT überschrieben.

Ich habe es geschafft, ein Problem für mich selbst zu erstellen, indem ich Android Studio installiert habe, um einen anderen Emulator zu generieren. Ich tat dies, nachdem ich bereits die Android SDK über Home Brew installiert hatte.

Wenn Sie also während der NativeScript-Installation die Installation von Android sdk über HomeBrew ausgewählt haben, stellt NativeScript die obigen Einstellungen wie folgt ein:

Android_HOME=/usr/local/share/Android-sdk
Android_SDK_ROOT=/usr/local/share/Android-sdk

Nach der Installation von Android Studio werden diese Werte wie folgt überschrieben:

Android_HOME=/Users/[User]/Library/Android/sdk
Android_SDK_ROOT=/Users/[User]/Library/Android/sdk

Natürlich gibt es einen Konflikt mit Android studio und der NativeScript/Brew-Installation von Android sdk. Wenn Sie das eine oder andere entfernen und/oder überprüfen, ob die env-Variable den richtigen Pfad enthält, wird der Emulator gestartet.

1
Jamie Armour

Oleg Cherrs Antwort führte mich zu einer Lösung. Wie er erwähnt hat

Gehe zu /.Android/avd/ und öffne die config.ini. Suchen Sie die Eigenschaft> image.sysdir.1. Es zeigt auf das Verzeichnis innerhalb des SDK, das system> images enthält. Stellen Sie sicher, dass dieses Verzeichnis vorhanden ist und Dateien wie build.prop,> system.img usw. enthält. Wenn dies nicht der Fall ist, müssen Sie den SDK-Manager öffnen und> Systemabbilder herunterladen, die für Ihr AVD erforderlich sind.

Ich habe die entsprechende Emulator * .ini-Datei im avd-Verzeichnis gefunden ..__ Dort habe ich den Eintrag "image.sysdir.1" geändert. Ich habe den relativen Pfad durch einen absoluten Pfad ersetzt (hängen Sie den Android_SDK_ROOT vorne an). Danach startete der Emulator wie erwartet von der Befehlszeile.

1
Xerox23

Ich hatte das gleiche Problem, das nach dem Setzen der folgenden Pfadvariablen verschwunden war Hinweis: Der Pfad der AVD-Startseite unterscheidet sich von den anderen drei.

 enter image description here

1
Hitesh Sahu

Nachdem ich einige Zeit lang andere googelte "Lösungen" ausprobiert hatte, die only - Sache, die für mich funktionierte, nachdem ich die Umgebungsvariable Android_SDK_ROOT unter Windows eingestellt und außerdem die Variablen Android_HOME und Android_SDK_HOME hinzugefügt und entfernt hatte, war Xerox23s Antwort - die AVD-Konfiguration editierend .ini, um den Wert von Android_SDK_ROOT in die Eigenschaft image.sysdir.1 zu kodieren.

Dazu wurden Android Studio 3.0.1 und Emulator 26.1.4 verwendet. Das virtuelle Gerät wurde vom AVD Manager aus in Android Studio gestartet.

0
AndrWeisR

die Fehler variieren tatsächlich. Es ist hilfreich, ./emulator mit der Option -verbose auszuführen. Es werden die tatsächlichen Fehler angezeigt.

0
deathemperor

Für Windows-Computer: Entfernen Sie nach dem Ausprobieren von set path den Pfad etc etc .. Was schließlich funktioniert, ist, den Ordner C:\Users\johndoe\.Android zu lokalisieren und ihn zu löschen. Danach können Sie Ihr Android Studio zum Mittagessen einladen. In diesem Fall werden Sie aufgefordert, eine neue AVD-Datei herunterzuladen und zu installieren. Anschließend werden sie überschrieben und erstellen einen neuen Ordner und neue Dateien. Dies löst das Problem.

0
Delino

Ich hatte gerade das gleiche Problem auf dem Mac und Folgendes habe ich getan:

  1. Ich habe die Android-SDK entfernt, die ich mit Brew installiert habe
  2. Ich habe die Android_HOME-Variable auf Android_SDK_ROOT =/Benutzer/Benutzername/Bibliothek/Android/SDK gesetzt
0
allister

Ich bin auf dieses Problem gestoßen, seit ich React Native von Anfang an gemacht habe. Google hat die Kommandozeilen-Tools abgelehnt und besteht auf Android Studio. Die Lösung für mich bestand darin, die Befehlszeilentools zu entfernen

rm -rf /usr/local/Cellar/Android-sdk

rm /usr/local/bin/Android

Öffnen Sie die AS-Installation von sdk v6 wie angewiesen https://facebook.github.io/react-native/docs/getting-started.html#1-install-Android-studio

machen Sie eine neue AVD und es wird ohne Fehler gestartet

0
Harry Moreno

Befolgen Sie die folgenden Schritte, um das Problem zu lösen

1.

export Android_HOME=/usr/local/Cellar/Android-sdk/24.4.1
export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_HOME/bin

2.

Go to Android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3.

Go to Android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator
0
Gampesh