214 votes

PANIQUE : rupture du chemin d'accès au système AVD. Vérifiez votre valeur ANDROID_SDK_ROOT

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 l'exportation, j'ai obtenu :

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

Une idée de l'endroit où je me trompe ? Je suis sûr que c'est le sdk Root alors pourquoi est-ce que j'obtiens un chemin système avd cassé ?

0 votes

Parvenez-vous à lancer l'émulateur avec AVD Manager (situé dans <AndroidSDK>) ? \AVD Manager.exe)

4 votes

Je rencontre le même problème avec Visual Studio lors de la création d'une application multiplateforme. Mon texte d'erreur est le suivant 1>PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT 1>Emulator Nexus_5X_API_23 cannot be started.

0 votes

J'ai ouvert le gestionnaire du SDK Android et j'ai installé tout ce qui s'y trouvait (Tools, Various API levels, Extras). Littéralement ! Cela a résolu mon problème. Cependant, j'ai rencontré d'autres problèmes par la suite, liés à la technologie HAXM d'Intel nécessaire à l'exécution des émulateurs Android. Ils doivent être résolus différemment.

227voto

Oleg Cherr Points 1454

Plusieurs problèmes peuvent survenir lorsque vous déplacez votre AVD ou votre SDK dans un autre répertoire, ou lorsque vous remplacez un ancien SDK par un nouveau, ou encore lorsque le SDK est corrompu d'une manière ou d'une autre.

Je décrirai ci-dessous tous les problèmes possibles que je connais et je vous donnerai plusieurs façons de les résoudre.

Bien entendu, je suppose que vous avez créé un AVD et qu'il se trouve dans le dossier C:\Users\<user_name>\.android\avd (Windows) ou ~/.android/avd (Linux/MacOS).

Si vous avez déménagé .android à un autre endroit, puis définir le ANDROID_SDK_HOME au chemin d'accès du répertoire parent contenant votre .android et s'assurer que le Gestionnaire AVD a trouvé votre appareil virtuel.

Vérifiez également les chemins d'accès dans <user_home>/.android/avd/<avd_name>.ini


Structure SDK incomplète/corrompue

PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value

Ces deux erreurs se produisent si l'émulateur ne trouve pas le SDK ou si le SDK est défectueux.

Je vous recommande donc tout d'abord de supprimer le fichier ANDROID_SDK_ROOT variable du tout. Elle 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 une mauvaise arborescence de fichiers. Veuillez procéder comme suit :

  1. Vérifier que le Répertoire SDK possède au moins ces 4 annuaires : emulator , platforms , platform-tools , system-images . C'est très important ! Ces répertoires doivent être présents. Si certains d'entre eux n'existent pas, il suffit de créer des répertoires vides.

  2. Aller à <user_home>/.android/avd/<avd_name> et ouvrir config.ini . Trouver le image.sysdir.1 propriété. Elle 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 qu'il contient des fichiers tels que build.prop , system.img , etc. Si ce n'est pas le cas, vous devez ouvrir le fichier Gestionnaire SDK et téléchargez les images système dont votre AVD a besoin (voir ci-dessous).

Si tout est configuré correctement, lorsque ces erreurs concernant les ANDROID_SDK_ROOT doit disparaître. Si ce n'est pas le cas, vous pouvez maintenant essayer de mettre en place ANDROID_SDK_ROOT variable.


Les paquets requis et HAXM ne sont pas installés

Le prochain problème auquel vous pouvez être confronté est que l'émulateur commence à se lancer, mais qu'il se bloque ou s'arrête immédiatement. Cela signifie probablement que vous n'avez pas installé tous les paquets nécessaires.

Une autre erreur possible est la suivante :

Impossible de détecter automatiquement un 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.

Ainsi, pour lancer avec succès un AVD, vous devez vous assurer qu'au moins ces paquets 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 du système que votre AVD utilise, par exemple system-images;android-25;google_apis;x86

Notez que les versions les plus récentes du SDK n'ont pas d'outil autonome de gestion de l'information. SDK Manager.exe . Au lieu de cela, vous devez soit utiliser Android Studio, soit tools\bin\sdkmanager.bat (Linux/MacOS ont probablement sh ).

Pour obtenir la liste de tous les paquets disponibles, utilisez sdkmanager --list o sdkmanager --list --verbose

Pour installer des paquets, utilisez sdkmanager <package1> <package2> ...

Je recommande également d'installer HAXM sur votre système manuellement.


Les fichiers Qcow2 font référence à des images de base incorrectes/inexistantes

Le dernier problème que je mentionnerai survient 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 l'erreur suivante :

qemu-system-i386.exe : -drive if=none,overlap-check=none,cache=unsafe,index=0,id=system,file= 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 deux façons d'y remédier :

  1. Si vous ne vous souciez pas des données contenues dans l'AVD, supprimez simplement tous les fichiers qcow2 à partir 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.

  2. Si les données de l'émulateur sont importantes pour vous, ouvrez toutes les fenêtres de l'émulateur. qcow2 un par un à l'aide de n'importe quel éditeur HEX (je préfère HxD ), trouver le chemin d'une base img et le remplacer par le bon dans le fichier Overwrite (pour préserver la taille du fichier). Sélectionnez ensuite le chemin et obtenez sa longueur en hexadécimal (ex. 2F ). 2F représente la barre oblique ASCII / . Le mettre en place 13 :

Edit Android qcow2 files using HxD HEX editor

PS : Je ne suis pas sûr, mais il y a probablement des utilités comme qemu-img permettant de définir différentes images de base. Pour moi, il est plus facile d'éditer manuellement le binaire.


Vous devriez maintenant être en mesure de lancer avec succès votre appareil virtuel Android. Je l'espère :)

0 votes

Une autre raison peut être l'absence de hw.cpu.arch dans le fichier config.ini

3 votes

J'ai suivi toutes les instructions et j'obtiens toujours un chemin d'accès au système AVD qui ne fonctionne pas.

0 votes

Génial. Bravo pour les fichiers de base qcow ! Connaissez-vous un moyen plus générique de rebaser les fichiers qcow ? J'aimerais partager mon AVD avec plusieurs personnes...

143voto

EFreak Points 373

Sur Mac : J'avais installé android-sdk en utilisant brew ainsi qu'Android Studio. D'une manière ou d'une autre, le fait d'avoir 2 installations provoquait ce problème. Lorsque j'ai désinstallé mon installation brew du sdk en utilisant brew cask uninstall android-sdk et j'ai ajouté les variables suivantes à mon environnement. Cela a fonctionné.

export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME

20 votes

J'avais préalablement installé le sdk Android en utilisant brew tout en suivant un tutoriel de Nativescript. Après avoir installé Android Studio, j'ai constaté que l'émulateur ne se lançait pas. Votre correctif a résolu mon problème. Je vous remercie !

2 votes

Cela a également fonctionné pour moi. J'avais également installé android-sdk lors de l'installation de NativeScript. L'émulateur se lance directement depuis Android Studio, mais pas via NativeScript (tns run Android).

3 votes

Cela a résolu mon problème, mais sans supprimer la version Android-sdk de brew.

16voto

TechnoTim Points 41

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'
 

13voto

Olivier Maina Points 41
  • 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.

5voto

d.boyd Points 401

ok je peux exécuter android de Cordova, j'ai changé ANDROID_HOME à,

 export ANDROID_HOME=/usr/local/opt/android-sdk
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X