Après avoir tapé cordova run Android
dans le terminal, j'obtiens cette erreur:
Waiting for emulator to start...
PANIC: Broken AVD system path. Check your Android_SDK_ROOT value [/Users/username/Library/Android/sdk]!
Cela se produit après l'exportation:
export Android_SDK_ROOT='/Users/username/Library/Android/sdk'
Avant d'exporter j'ai eu:
Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define Android_SDK_ROOT
Des idées où je vais mal? Je suis sûr que c'est la racine du SDK alors pourquoi ai-je le chemin d'accès système avd cassé?
Il peut y avoir plusieurs problèmes différents lorsque vous déplacez votre AVD ou SDK dans un autre répertoire, que vous remplacez un ancien SDK par un nouveau ou que vous obtenez le SDK corrompu.
Je décrirai ci-dessous tous les problèmes possibles que je connais et vous donnerai plusieurs façons de les résoudre.
Bien sûr, je suppose que vous avez créé un fichier AVD, qui se trouve dans
C:\Users\<user_name>\.Android\avd
(Windows) ou~/.Android/avd
(Linux/MacOS).Si vous avez déplacé
.Android
à un autre emplacement, définissez la variable d'environnementAndroid_SDK_HOME
sur le chemin du répertoire parent contenant votre.Android
et assurez-vous que le Gestionnaire AVD a trouvé votre périphérique virtuel.Vérifie également les chemins dans
<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
Ces 2 erreurs se produisent si l'émulateur ne peut pas trouver le SDK ou si le SDK est endommagé.
Donc, tout d’abord, je recommande de supprimer la variable Android_SDK_ROOT
. Cela n'est nécessaire que lorsque l'émulateur est situé en dehors du répertoire du SDK. Mais en général, votre émulateur reste dans le répertoire SDK. Et dans ce cas, il doit détecter l'emplacement du SDK automatiquement. Si ce n'est pas le cas, votre SDK a probablement un mauvais filetree. Veuillez faire ce qui suit:
Vérifiez que le répertoire SDK} a au moins ces 4 répertoires: emulator
, platforms
, platform-tools
, system-images
. Il est très important! Ces répertoires doivent être présents. Si certains n'existent pas, créez simplement des répertoires vides.
Allez à <user_home>/.Android/avd/<avd_name>
et ouvrez config.ini
. Recherchez la propriété image.sysdir.1
. Il pointe vers le répertoire, à l'intérieur du répertoire SDK, qui contient l'image système réelle. Assurez-vous que ce répertoire existe et contient des fichiers tels que build.prop
, system.img
, etc. Sinon, vous devez ouvrir le SDK Manager et télécharger les images système requises par votre AVD (voir ci-dessous).
Si tout est configuré correctement, lorsque ces erreurs concernant Android_SDK_ROOT
doivent disparaître. Si ce n'est pas le cas, vous pouvez maintenant essayer de configurer la variable Android_SDK_ROOT
.
Le prochain problème que vous pouvez rencontrer est que l'émulateur commence à se lancer, mais se bloque ou se ferme immédiatement. Cela signifie probablement que tous les packages requis ne sont pas installés.
Une autre erreur possible est:
Impossible de détecter automatiquement un fichier binaire ADB. Certaines fonctionnalités de l'émulateur ne fonctionneront pas tant qu'un chemin personnalisé vers ADB n'aura pas été ajouté dans la page des paramètres étendus.
Donc, pour lancer avec succès un fichier AVD, vous devez vous assurer qu'au moins ces packages sont installés:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
Et comme je l’ai mentionné précédemment, vous devez installer les images système utilisées par votre AVD, par exemple system-images;Android-25;google_apis;x86
.
Notez que les versions les plus récentes du SDK n’ont pas de
SDK Manager.exe
autonome. Au lieu de cela, vous devez utiliser Android Studio outools\bin\sdkmanager.bat
(Linux/MacOS ont probablement des fichierssh
).Pour lister tous les paquets disponibles, utilisez
sdkmanager --list
ousdkmanager --list --verbose
Pour installer les packages, utilisez
sdkmanager <package1> <package2> ...
Aussi, je recommande d'installer HAXM sur votre système manuellement.
Le dernier problème que je vais mentionner se produit lorsque vous essayez de déplacer AVD ou SDK d’un ordinateur ou d’un répertoire à un autre. Dans ce cas, vous pouvez obtenir une telle erreur:
qemu-system-i386.exe: -drive si = aucun, contrôle de chevauchement = aucun, cache = non sécurisé, index = 0, id = système, fichier =
C:\Users\<old_user_name>\.Android\avd\<avd_name>
.avd\system.img.qcow2, en lecture seule: impossible d'ouvrir le fichier de sauvegarde: impossible d'ouvrir '
<old_sdk_dir>\system-images\Android-22\google_apis\x86\system.img
': argument non valide
Il y a 2 façons de le réparer:
Si vous ne vous souciez pas des données que contient l’AVD, supprimez simplement tous les fichiers qcow2
du répertoire AVD (par exemple, à partir de <user_home>/.Android/avd/<avd_name>
). Dans ce cas, vous obtiendrez une version propre d'Android, comme après une réinitialisation matérielle.
Si les données de l'émulateur sont importantes pour vous, ouvrez tous les fichiers qcow2
un par un en utilisant n'importe quel éditeur HEX (je préfère HxD ), recherchez le chemin d'un fichier img
de base et modifiez-le en le mode Overwrite
(pour conserver la taille du fichier). Sélectionnez ensuite le chemin et obtenez sa longueur au format hexadécimal (par exemple, 2F
). 2F
représente la barre oblique ASCII /
. Mettez-le en position 13
:
PS: Pas sûr, mais il y a probablement des utilitaires comme qemu-img permettant de définir une image de base différente. Eh bien, pour moi, il est plus facile d’éditer manuellement le binaire.
Vous pourrez maintenant lancer votre appareil virtuel Android avec succès. J'espere :)
Sur Mac: J'avais installé Android-sdk
en utilisant brew
ainsi qu’Android Studio. D'une manière ou d'une autre, avoir 2 installations posait ce problème. Lorsque j'ai désinstallé mon installation de brassage du sdk en utilisant brew cask uninstall Android-sdk
et ajouté les vars suivants à mon env. Ça a marché.
export Android_HOME=/Users/<Username>/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
Cela signifie que votre chemin d'accès aux outils est incorrect. Voici à quoi cela ressemble sur un mac utilisant une infusion. Attention à la version.
export Android_SDK_ROOT='/usr/local/Cellar/Android-sdk/24.4.1_1'
Dans votre cas, il semble que vous devriez exécuter ceci:
export Android_SDK_ROOT='/Users/username/Library/Android/sdk'
Cela résoudra votre problème sous 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
Le répertoire Platfoms était manquant dans/usr/local/share/Android-sdk .
J'ai créé un répertoire vide nommé plates-formes qui a résolu le problème.
ok je peux utiliser Android depuis Cordova, j'ai changé Android_HOME en,
export Android_HOME=/usr/local/opt/Android-sdk
Vous devriez ajouter AVD Emulator . Allez à cet endroit:
C:\Users\%username%\AppData\Local\Android\sdk\
démarrez AVD Manager et dans le deuxième onglet (Définitions de périphériques), cliquez sur le bouton "createAVD".
J'ai eu le même problème dans Windows 10,
J'ai résolu mon problème en suivant les étapes ci-dessous.
ouvrir Android Studio
- Outils
- Gestionnaire de SDK
- copier Android SDK Localisation
Emplacement du SDK Android
set variable d'environnement système
Android_HOME et Android_SDK_ROOT
variable d'environnement système
Je viens de rencontrer ce problème aujourd'hui et j'ai réussi à le résoudre.
Émulateur: [140735565005632]: ERREUR: Android/android-emu/Android/qt/qt_setup.cpp: 28: Bibliothèque Qt introuvable dans/Utilisateurs/votre_nom_utilisateur/Bibliothèque/Android/sdk/émulateur/lib64/qt/lib
15:08 Émulateur: impossible de lancer '/ Utilisateurs/votre_nom_utilisateur/Bibliothèque/Android/sdk/émulateur/qemu/darwin-x86_64/qemu-system-x86_64': Aucun fichier ou répertoire de ce type
La solution était assez simple. Installez simplement l'émulateur Android via Android Studio => outils => Android => Gestionnaire de SDK => Outils SDK => sélectionnez Android Emulator => Appliquer
J'utilise un MacBook Pro sur macOS High Sierra et je pense que votre ordinateur n'a rien à voir avec ce problème. L'émulateur n'est évidemment pas installé lors de la première utilisation du gestionnaire d'installation Android Studio, du moins pour moi, avec Android Studio 3.0.1.
Assurez-vous également que vos chemins sont définis dans votre .bashrc ou .zshrc comme ceci:
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
Comme @EFreak, j'ai installé Android-sdk avec homebrew (un gestionnaire de paquets pour Mac). Je devais le faire, car je suivais les tutoriels de nativescript. Si vous préférez utiliser la version brassée sur la version Android-sdk, utilisez cette réponse (cela vous permettra d'utiliser nativescripts tns run Android
api), et si vous souhaitez utiliser Android-sdk par défaut pour le studio Android, suivez la réponse de @ EFreak.
En gros, il vous suffit de changer l'emplacement de votre SDK Android dans Android Studio. Commencez par ouvrir un projet dans un studio Android. Ensuite, ouvrez le gestionnaire de SDK en cliquant sur ce bouton.
Ensuite, lorsque les préférences par défaut du gestionnaire de SDK Android apparaissent, vous devez cliquer sur Modifier en regard de l'emplacement du SDK Android.
Ensuite, vous devez réellement mettre à jour l’emplacement du sdk sur l’écran de configuration des composants du sdk. Ma brew
Android-sdk était situé ici /usr/local/share/Android-sdk
.
Ensuite, terminez l’assistant en installant tous les paquets. J'avais besoin de supprimer et de recréer mes émulateurs de périphérique à cette étape, mais cela semblait bien fonctionner par la suite.
Dans mon cas, il était cassé car Android_HOME et Android_SDK_ROOT étaient différents, donc une fois que j'ai défini Android_HOME comme identique à Android_SDK_ROOT, il a commencé à fonctionner.
Vérifiez si l'image système utilisée par votre AVD a été téléchargée sous $Android_SDK_ROOT/system-images/
Pour résoudre ce problème, je devais installer le package avec l'image système manquante à l'aide de SDK Manager.exe (sous "C:\Program Files (x86)\Android\android-sdk"). J'avais remarqué que l'image système dont j'avais besoin ("Android-23") était manquante dans "C:\Program Files (x86)\Android\android-sdk\system-images".
Après avoir exécuté SDK Manager.exe et installé les packages appropriés, j'ai pu exécuter l'émulateur dans Android Studio.
Voici la solution qui a fonctionné pour moi:
https://www.embarcadero.com/starthere/xe5/mobdevsetup/Android/en/creating_an_Android_emulator.html
NativeScript
Si vous rencontrez des difficultés pour lancer l'émulateur Android via NativeScript, il est probable que les utilisateurs Android_HOME et Android_SDK_ROOT aient été remplacés.
J'ai réussi à créer un problème en installant Android Studio afin de générer un émulateur différent. Je l'ai fait après avoir déjà installé le Android sdk via home brew.
Ainsi, si lors de l'installation de NativeScript, vous avez choisi d'installer Android sdk via HomeBrew, NativeScript définira les paramètres ci-dessus de la manière suivante:
Android_HOME=/usr/local/share/Android-sdk
Android_SDK_ROOT=/usr/local/share/Android-sdk
L'installation ultérieure de Android Studio remplacera ces valeurs comme suit:
Android_HOME=/Users/[User]/Library/Android/sdk
Android_SDK_ROOT=/Users/[User]/Library/Android/sdk
Il y a donc naturellement un conflit avec Android studio et l'installation NativeScript/Brew du logiciel Android sdk. Supprimer l’un ou l’autre et/ou vérifier que la variable env contient le bon chemin doit permettre le lancement de votre émulateur.
La réponse d'Oleg Cherrs m'a amené à une solution. Comme il a mentionné
Allez à /.Android/avd/ et ouvrez le fichier config.ini. Recherchez la propriété> image.sysdir.1. Il pointe vers le répertoire du SDK contenant system> images. Assurez-vous que ce répertoire existe et contient des fichiers tels que build.prop,> system.img, etc. Sinon, vous devez ouvrir le SDK Manager et> télécharger les images système requises par votre AVD (voir ci-dessous).
J'ai trouvé le fichier d'émulateur * .ini correspondant dans le répertoire avd . J'ai modifié l'entrée "image.sysdir.1". J'ai remplacé le relatif par un chemin absolu (ajoutez le Android_SDK_ROOT devant). Après cela, l'émulateur a démarré à partir de la ligne de commande comme prévu.
Après avoir passé pas mal de temps à essayer d'autres "solutions" sur Google, le seulement qui fonctionnait pour moi, après avoir défini la variable d'environnement Android_SDK_ROOT sous Windows et ajouté et supprimé les variables Android_HOME et Android_SDK_HOME, était la réponse de Xerox23 - modification du Le fichier config.ini d'AVD permet de coder en dur la valeur de Android_SDK_ROOT dans la propriété image.sysdir.1.
Ceci utilisait Android Studio 3.0.1 et l'émulateur 26.1.4 pour lancer le périphérique virtuel à partir du gestionnaire AVD à partir d'Android Studio.
les erreurs varient réellement. Il est utile d'exécuter ./emulator avec l'option -verbose, cela affichera les erreurs réelles.
Pour la machine Windows: Après avoir essayé beaucoup de chemin défini, supprimer le chemin et etc . Ce qui fonctionne finalement est de localiser le dossier C:\Users\johndoe\.Android
et de le supprimer. Après que vous puissiez lancer votre Android Studio, il vous demandera de télécharger et d'installer un nouveau fichier AVD. Il remplacera et créera un nouveau dossier et de nouveaux fichiers. Cela résout le problème.
Je viens d'avoir le même problème sur Mac et voici ce que j'ai fait:
Je rencontre ce problème depuis que je pratique React Native depuis le début. Google a déconseillé les outils de ligne de commande et insiste sur le studio Android. La solution pour moi était de supprimer les outils de ligne de commande
rm -rf /usr/local/Cellar/Android-sdk
rm /usr/local/bin/Android
ouvrez AS install sdk v6 comme indiqué https://facebook.github.io/react-native/docs/getting-started.html#1-install-Android-studio
faire un nouveau AVD et ça va lancer sans erreur
Suivez les étapes ci-dessous, cela devrait résoudre votre problème
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