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 :
-
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.
-
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 :
-
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.
-
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
:
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
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.
1 votes
Duplicata possible de Impossible d'exécuter l'émulateur dans Android Studio
4 votes
Je peux lancer l'avd via Android studio. J'obtiens cette erreur lorsque j'essaie de le lancer à partir de la ligne de commande. Il y a une erreur
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/usr/local/share/android-sdk]!
Lorsque je vérifie ce chemin->echo $ANDROID_SDK_ROOT /usr/local/share/android-sdk
. L'émulateur se bloque donc même si le chemin d'accès est correct.0 votes
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. allez dans les préférences Android studio => Build, Execution, Deployment => Build Tools => Gradle => Android studio => Enable embedded Maven Repository doit être sélectionné. 3. Allez dans les préférences d'Android studio => Apparence et comportement => Paramètres système => SDK Android => Allez dans Outils SDK et sélectionnez Emulateur Android.