Résoudre les problèmes connus avec Android Emulator

Cette page constitue une liste des problèmes connus, des solutions de contournement et des conseils de dépannage pour Android Emulator. Si vous rencontrez un problème non répertorié ici ou si vous ne parvenez pas à utiliser une solution de contournement, veuillez signaler un bug.

Problèmes d'ordre général


Google Maps ne s'affiche pas dans les commandes avancées d'Android Emulator

À partir de la mi-mai, les versions d'Android Emulator antérieures à la version 34.2.13 ne seront plus compatibles avec Google Maps dans les commandes avancées. Les anciens émulateurs sont fournis avec une version de Chromium incompatible avec l'API JavaScript Google Maps.

Vérifier l'espace disque disponible

Pour éviter les plantages et les blocages dus à un espace disque insuffisant, l'émulateur vérifie désormais qu'il y a suffisamment d'espace disque libre au démarrage et ne démarre que si au moins 5 Go sont disponibles. Si l'émulateur ne se lance pas, assurez-vous que vous disposez de suffisamment d'espace disque.

Logiciel antivirus

Étant donné que de nombreux packages logiciels de sécurité et antivirus fonctionnent en surveillant chaque opération de lecture et d'écriture, leur utilisation peut réduire les performances d'outils tels qu'Android Emulator.

De nombreux packages antivirus permettent d'ajouter des programmes spécifiques à une liste d'applications de confiance, ce qui leur permet de fonctionner sans nuire aux performances. Si vous remarquez que les performances sont faibles lors de l'enregistrement ou du chargement des instantanés AVD, vous pouvez les améliorer en ajoutant Android Emulator à la liste des applications approuvées dans votre antivirus.

L'impact sur les performances varie en fonction de l'antivirus. Si vous disposez de logiciels antivirus autres que ceux inclus avec votre système d'exploitation, vous pouvez effectuer des tests simples pour déterminer lequel affecte les performances pour le chargement de l'émulateur et l'enregistrement des opérations.

Il est possible que certains antivirus ne soient pas compatibles avec Android Emulator.

Si vous utilisez le logiciel Avast et que vous rencontrez des difficultés pour exécuter l'émulateur Android, désactivez les options Use nested virtualization when available (Utiliser la virtualisation imbriquée lorsqu'elle est disponible) et Enable Hardware assisted virtualization (Activer l'assistance matérielle à la virtualisation) sous Troubleshooting (Résolution des problèmes), dans les paramètres d'Avast. En outre, une fois la virtualisation matérielle d'Avast désactivée, assurez-vous que HAXM est correctement configuré en réinstallant complètement la dernière version depuis SDK Manager.

Sous Windows, il arrive que l'AVD se bloque avec HAXM. Le problème peut être résolu en désinstallant complètement McAfee.

Windows : RAM disponible et charge du commit

Lorsque l'émulateur démarre, il doit initialiser la RAM du système d'exploitation invité, à savoir Android. Sous Windows, l'émulateur demande au système de prendre en compte la taille totale de la mémoire de l'invité au moment du démarrage, même si, lors d'une opération réelle, la mémoire peut être réquisitionnée à la demande. La raison est simple : Windows a une approche prudente et se prépare toujours au pire scénario. Il s'assure donc qu'il y a suffisamment de RAM physique et d'espace sur le fichier d'échange pour contenir l'ensemble de la charge potentielle. Cela permet d'éviter tout problème si la mémoire de l'invité est touchée rapidement, sans aucune possibilité de supprimer ni de libérer de la mémoire d'une manière ou d'une autre.

Parfois, lorsque l'émulateur demande à Windows de prendre en compte la taille totale de la mémoire de l'invité, la requête dépasse la limite du commit actuel, qui correspond à la somme de l'espace disponible sur la RAM physique et sur le fichier d'échange. Dans ce cas, Windows ne peut pas garantir que le pire scénario puisse être évité avec cet espace disponible, et l'émulateur ne démarre pas.

Dans la plupart des cas, l'espace de disque dur alloué pour fichier d'échange et la mémoire RAM physique sont largement suffisants pour l'émulateur. Toutefois, si vous ne parvenez pas à démarrer l'émulateur en raison du dépassement du commit, nous vous recommandons d'examiner la charge actuelle, visible dans l'onglet Performance du Gestionnaire des tâches Windows. Pour ouvrir le Gestionnaire des tâches, appuyez sur Ctrl+Maj+Échap.

Plusieurs options s'offrent à vous pour éviter de dépasser la limite du commit :

  • Libérez de la RAM physique avant de lancer l'émulateur en fermant les applications et les fichiers non utilisés.
  • Désactivez les utilitaires tiers de gestion et de compression de la mémoire. Ils sont susceptibles d'entraîner des charges excédentaires et de rapprocher votre système de la limite du commit.
  • Utilisez une taille gérée par le système pour le fichier d'échange de Windows, ce qui permet d'augmenter sa taille de manière flexible et dynamique (et donc d'augmenter la limite du commit) en réponse à une demande accrue de l'émulateur et d'autres applications.

    Pour en savoir plus sur les charges du commit et sur les raisons pour lesquelles un paramètre flexible est plus efficace, consultez cet article Microsoft.

Les gestes à plusieurs doigts ne fonctionnent pas dans la fenêtre des outils

Les gestes à plusieurs doigts, parmi lesquels le défilement panoramique à deux doigts, ne fonctionnent pas lorsque l'émulateur s'exécute dans la fenêtre d'un outil. Pour activer les gestes à plusieurs doigts, lancez l'émulateur dans une fenêtre distincte.

L'émulateur détériore la sortie audio Bluetooth

Si vous utilisez un casque Bluetooth, vous remarquerez peut-être que la sortie audio est dégradée lorsque l'émulateur est en cours d'exécution (problème 183139207). En effet, au lancement de l'émulateur, le micro est activé, ce qui bascule le casque en mode duplex et réduit la qualité.

Pour éviter cela, vous pouvez désactiver le micro dans l'émulateur en ajoutant hw.audioInput=no au fichier config.ini de l'appareil virtuel Android (AVD). Pour trouver le fichier config.ini d'un AVD, accédez à celui-ci dans le Gestionnaire d'appareils, cliquez sur son menu à développer et sélectionnez Show on Disk (Afficher sur le disque).

Échec du lancement des appareils virtuels Android sous ChromeOS

Sous ChromeOS, il est possible que les appareils virtuels Android (AVD) ne se lancent pas, car la dépendance libnss3 est manquante. Pour lancer les AVD, exécutez sudo apt install libnss3 afin d'installer manuellement la bibliothèque libnss3.

Avertissements concernant le capteur d'inclinaison du poignet sur Wear OS

Sur Wear OS, l'émulateur peut enregistrer à plusieurs reprises le message suivant concernant le capteur d'inclinaison du poignet : the host has not provided value yet for sensorHandle=16

Les développeurs peuvent ignorer ces avertissements.

La fenêtre de l'émulateur intégré est trop petite

Sur les machines dont la résolution est faible, par exemple 1 024 × 768, il peut être difficile de lire l'écran de l'émulateur lorsqu'il s'exécute dans une fenêtre d'outil d'Android Studio. Pour laisser plus d'espace à l'émulateur, fermez la fenêtre d'outil Gestionnaire d'appareils si elle est ouverte. Vous pouvez également extraire la fenêtre de l'émulateur d'Android Studio. Pour ce faire, dans la fenêtre de l'émulateur, cliquez sur Settings > View Mode (Paramètres > Mode d'affichage), puis sélectionnez Window (Fenêtre) au lieu de Dock Pinned (Épinglée à la fenêtre).

Problèmes graphiques


Suite à une mise à jour, Android Emulator s'exécute lentement

De nombreux facteurs externes peuvent ralentir l'exécution d'Android Emulator après une mise à jour. Pour commencer, nous vous recommandons de procéder comme suit :

  • Si vous possédez un GPU Intel (et en particulier Intel HD 4000), assurez-vous d'avoir téléchargé et installé la dernière version du pilote graphique Intel.
  • Si votre appareil dispose à la fois d'un GPU Intel et d'un GPU dédié, désactivez le GPU Intel dans le Gestionnaire d'appareils pour vous assurer d'utiliser le GPU dédié.
  • Exécutez l'émulateur à l'aide du mode -gpu swiftshader. Pour en savoir plus sur la configuration des options d'accélération graphique en ligne de commande, consultez la section Configurer l'accélération matérielle.
  • Assurez-vous que votre routeur n'utilise pas d'adresses IPv6 si vous ne disposez pas d'une connexion du même type.

Si vous rencontrez toujours des problèmes de lenteur, signalez un bug en indiquant les détails nécessaires concernant Android Emulator afin que nous puissions étudier le problème.

Erreur : vulkan-1.dll introuvable

Si l'émulateur ne se lance pas en raison de l'erreur vulkan-1.dll cannot be found, vous devrez probablement le mettre à jour. Pour ce faire, dans Android Studio, accédez à Tools > SDK Manager (Outils > SDK Manager) et installez la dernière version stable de la plate-forme Android.

Autrement, si vous n'avez pas besoin d'applications qui utilisent la bibliothèque graphique Vulkan, désactivez Vulkan en lançant l'émulateur à partir de la ligne de commande avec l'indicateur -feature -Vulkan.

Impossible de créer un instantané

Il n'est pas possible de créer un instantané de l'émulateur comprenant la bibliothèque graphique Vulkan. Pour exécuter l'émulateur sans Vulkan, lancez-le en ligne de commande avec l'option -feature -Vulkan. Vous pouvez également désinstaller et éviter d'utiliser des applications utilisant Vulkan (comme Chrome sur l'API 30 ou une version ultérieure) si vous souhaitez utiliser des instantanés dans votre workflow de développement.

Impossible d'ouvrir une page Web correctement

À partir du niveau d'API 30, Chrome utilise la bibliothèque graphique Vulkan comme système backend de rendu, ce qui peut entraîner des problèmes de compatibilité sur certaines machines. Si Chrome n'affiche pas certains éléments correctement, essayez de lancer l'émulateur en ligne de commande avec l'option -feature -Vulkan.

Avertissement concernant les pilotes de GPU : retour au logiciel

Si vous recevez un avertissement concernant le retour à l'état précédent des pilotes de GPU, vous utilisez peut-être un GPU non compatible. Par défaut, il utilise le mode automatique, qui peut choisir le rendu logiciel. Si vous choisissez "matériel", vous devriez pouvoir le forcer à utiliser le rendu matériel (il se peut qu'un message d'avertissement s'affiche quand même).

Pour les images qui ne proviennent pas du Play Store, vous pouvez le faire dans le Gestionnaire d'appareils -> trois points -> Modifier. Pour les images du Play Store, vous devez modifier manuellement ces deux fichiers de configuration :

~/.android/votre_nom_avd.avd/config.ini

~/.android/votre_nom_avd.avd/hardware-qemu.ini

Et changez hw.gpu.mode pour host

Notez que cela peut réduire la stabilité de l'émulateur. Pour en savoir plus, consultez le bug.

L'émulateur ne démarre pas sur le Bureau à distance Chrome pour Windows

Si l'émulateur ne démarre pas lorsque vous utilisez le Bureau à distance Chrome sous Windows, la solution actuellement recommandée consiste à utiliser l'indicateur gpu comme -gpu host ou -gpu swiftshader.

L'émulateur ne se comporte pas correctement sous macOS en mode rendu matériel

Sur les appareils Mac équipés d'Apple Silicon, l'émulateur utilise la bibliothèque MoltenVK pour l'API Vulkan lorsque le mode de rendu matériel est sélectionné. Bien que MoltenVK offre généralement de bien meilleures performances, la bibliothèque n'est pas compatible avec toutes les fonctionnalités Vulkan. En cas de problèmes de compatibilité, tels que des échecs de compilation de nuanceurs, des anomalies graphiques ou des plantages dans vos applications, définissez le mode de rendu sur logiciel via les paramètres de l'AVD ou utilisez l'argument de ligne de commande -gpu swiftshader.

Vous pouvez également désactiver la prise en charge de Vulkan avec l'argument -feature -Vulkan pour continuer à utiliser l'accélération matérielle dans les applications GLES.

Problèmes de réseau


Pas de connexion Internet : adresse DNS du serveur introuvable

Si l'émulateur ne parvient pas à se connecter à Internet, essayez de le lancer en ligne de commande en utilisant l'option -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,8.8.8.8,8.8.4.4”. Cette commande fournit une liste d'adresses IP du DNS public de Google séparées par des virgules. Pour en savoir plus sur le DNS public de Google, consultez la page DNS public de Google pour vos appareils.

Pas de connexion Internet : problèmes de résolution DNS

Les adresses DNS figurant dans le fichier /etc/resolv.conf ne fonctionnent pas toujours correctement. Pour contourner ce problème, lancez l'émulateur en ligne de commande, en utilisant l'option -dns-server 8.8.8.8 ou -dns.server 2001:4860:4860::8888 pour vous connecter via un réseau IPv6 uniquement.

Anciens problèmes (sur des émulateurs obsolètes ou sur d'anciens systèmes)


Impossible de lancer un AVD

Un AVD peut ne pas se lancer s'il existe un rapport d'erreur pour un émulateur plus récent (problème 281725854). Ce problème ne se produit que pour les utilisateurs qui passent de la version 33.x à la version 32.1.13 de Canary, qui ont subi un plantage la dernière fois qu'ils ont exécuté la version 33.x et qui n'ont pas redémarré leur AVD depuis. Le répertoire %TEMP% ou /tmp est donc toujours activé. Si vous rencontrez ce problème, essayez d'effacer le répertoire %TEMP% (/tmp sous Linux ou macOS).

Windows : l'émulateur ne parvient pas à se lancer si le nom de l'AVD contient des caractères Unicode

Sous Windows, lorsque le Gestionnaire d'appareils crée un appareil virtuel Android, il crée par défaut l'AVD sur C:\Users\<name>\.android\avd. Toutefois, si le nom de l'AVD (<name>) est en Unicode, l'émulateur ne parvient pas à lancer l'AVD correctement à partir de cet emplacement par défaut.

Ce problème est résolu dans la version 31.3.6 de l'émulateur, ainsi que dans les versions ultérieures. Pour résoudre ce problème, sélectionnez Tools > SDK Manager (Outils > SDK Manager) afin de mettre à jour l'émulateur.

Pour contourner ce problème, vous pouvez également définir la variable d'environnement ANDROID_SDK_HOME sur un répertoire personnalisé avant de créer un AVD. Par exemple, créez le répertoire C:\Android\home, puis définissez ANDROID_SDK_HOME sur celui-ci. Pour en savoir plus, consultez la section Variables d'environnement.

Les hyperviseurs ne peuvent pas émuler certaines fonctionnalités de processeur requises par les systèmes Android x86

Les hyperviseurs ne peuvent généralement pas émuler certaines fonctionnalités de processeur, telles que les extensions de streaming SIMD (SSE). Or, ces fonctionnalités sont requises par les systèmes Android x86.