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?
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 UmgebungsvariableAndroid_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
.
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:
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.
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.
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 odertools\bin\sdkmanager.bat
verwenden (Linux/MacOS haben wahrscheinlichsh
-Dateien).Um alle verfügbaren Pakete aufzulisten, verwenden Sie
sdkmanager --list
odersdkmanager --list --verbose
Verwenden Sie
sdkmanager <package1> <package2> ...
, um Pakete zu installieren.
Ich empfehle außerdem, HAXM manuell auf Ihrem System zu installieren.
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:
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.
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
:
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 :)
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
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'
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
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.
ok ich kann Android von Cordova ausführen, ich habe Android_HOME geändert zu,
export Android_HOME=/usr/local/opt/Android-sdk
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".
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
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
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.
Wenn die Standardeinstellungen für den Android SDK-Manager angezeigt werden, müssen Sie neben dem Speicherort des Android SDK auf Bearbeiten klicken.
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
.
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.
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.
Prüfen Sie, ob das von Ihrem AVD verwendete System-Image unter $Android_SDK_ROOT/system-images/
heruntergeladen wurde.
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
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.
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.
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.
die Fehler variieren tatsächlich. Es ist hilfreich, ./emulator mit der Option -verbose auszuführen. Es werden die tatsächlichen Fehler angezeigt.
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.
Ich hatte gerade das gleiche Problem auf dem Mac und Folgendes habe ich getan:
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
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