Il peut y avoir plusieurs problèmes différents lorsque vous déplacez votre AVD ou SDK vers un autre répertoire, ou remplacez un ancien SDK par un nouveau, ou d'une manière ou d'une autre, le SDK est corrompu.
Ci-dessous, je décrirai 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 AVD et qu'il se trouve dans C:\Users\<user_name>\.android\avd
(Windows) ou ~/.android/avd
(Linux / MacOS).
Si vous avez déménagé .android
à un autre endroit, définissez la ANDROID_SDK_HOME
variable d'environnement sur le chemin du répertoire parent contenant votre .android
et assurez-vous que AVD Manager a réussi à trouver votre périphérique virtuel.
Vérifiez également les chemins dans <user_home>/.android/avd/<avd_name>.ini
Structure du 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 2 erreurs se produisent si l'émulateur ne trouve pas le SDK ou si le SDK est cassé.
Donc, tout d'abord, je recommande de supprimer la ANDROID_SDK_ROOT
variable. Il n'est nécessaire que lorsque l'émulateur est situé en dehors du répertoire SDK. Mais en général, votre émulateur reste dans le répertoire SDK. Et dans ce cas, il doit détecter automatiquement l' emplacement du SDK . Si ce n'est pas le cas, votre SDK a probablement une arborescence de fichiers incorrecte. 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 d'entre eux n'existent pas, créez simplement des répertoires vides.
Allez <user_home>/.android/avd/<avd_name>
et ouvrez config.ini
. Trouvez la image.sysdir.1
propriété. 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 comme build.prop
, system.img
, etc. Si cela ne fonctionne pas, alors vous devez ouvrir le SDK directeur et télécharger des images du système de votre AVD a besoin (voir ci - dessous).
Si tout est configuré correctement, lorsque ces erreurs ANDROID_SDK_ROOT
doivent être supprimées. Si ce n'est pas le cas, vous pouvez maintenant essayer de configurer une ANDROID_SDK_ROOT
variable.
Les packages requis et HAXM ne sont pas installés
Le problème suivant auquel vous pouvez être confronté est que l'émulateur commence à se lancer, mais raccroche ou se ferme immédiatement. Cela signifie probablement que vous n'avez pas installé tous les packages requis.
Une autre erreur possible est:
Impossible de détecter automatiquement un binaire ADB. Certaines fonctionnalités d'émulateur ne fonctionneront pas tant qu'un chemin personnalisé vers ADB n'est pas ajouté dans la page des paramètres étendus.
Donc, pour lancer avec succès un 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é plus tôt, vous devez installer les images 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 de version autonome SDK Manager.exe
. Au lieu de cela, vous devez soit utiliser Android Studio, soit tools\bin\sdkmanager.bat
(Linux / MacOS ont probablement des sh
fichiers).
Pour lister tous les packages disponibles, utilisez sdkmanager --list
ousdkmanager --list --verbose
Pour installer des packages, 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 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, chevauchement-contrôle = aucun, cache = unsafe, index = 0, id = système, fichier = C:\Users\<old_user_name>\.android\avd\<avd_name>
.
avd \ system.img.qcow2, 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 existe 2 façons de résoudre ce problème:
Si vous ne vous souciez pas des données contenues dans l'AVD, supprimez simplement tous les qcow2
fichiers du répertoire AVD (par exemple 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 sur l'émulateur sont importantes pour vous, ouvrez tous les qcow2
fichiers un par un à l'aide de n'importe quel éditeur HEX (je préfère HxD ), trouvez le chemin d'un img
fichier de base et changez-le en le bon dans le Overwrite
mode (pour conserver le taille du fichier). Sélectionnez ensuite le chemin et obtenez sa longueur en hexadécimal (par exemple 2F
). 2F
représente la barre oblique ASCII /
. Mettez-le en position 13
:
PS: Pas sûr, mais il existe 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.
Maintenant, vous pourrez probablement lancer avec succès votre appareil virtuel Android. J'espere :)