Après avoir mis à jour mes outils de SDK Android à la version 25.3.1, l'émulateur ne fonctionnera plus.
Je peux ouvrir le gestionnaire AVD. Lorsque je clique sur "Play" sur l'un des émulateurs de la liste, je vois la barre ci-dessous sur Android Studio.
Mais ensuite, lorsque la barre de progression atteint la fin, rien ne se passe.
Je vois dans les notes de publication que la dernière mise à jour a apporté des modifications à l'émulateur. Je me demande donc s'il s'agit d'un bogue ou si quelque chose me manque.
J'utilise Android Studio 2.3.
Des idées?
J'ai rencontré le même problème après la mise à niveau. Je ne peux pas comprendre ce qui cause le problème de configuration mais j'ai trouvé une solution de contournement.
J'ai d'abord essayé de lancer l'émulateur à partir de la ligne de commande:
$ emulator @<name_avd_image>
emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-ranchu" is in the same location as your system image.
emulator: ERROR: Android_SDK_ROOT is defined (<Android>/sdk) but cannot find kernel file in <Android>/sdk/system-images/ sub directories
Vous pouvez obtenir plus d'informations si vous exécutez emulator
avec l'indicateur -verbose
. J'ai essayé de réinstaller l'image système (par exemple, l'API Android 25 x86 avec les API Google), Android Emulator 25.3.1 et de recréer l'AVD, mais rien n'a fonctionné.
Enfin, pour contourner le problème, je viens de copier tous les fichiers système du répertoire des images système du SDK dans le répertoire AVD:
Exemple: Pixel XL (API Android 25 x86 avec API Google)
SOURCE: <Android>
/sdk/images-système/Android-25/google_apis/x86 /
DESTINATION: ~/.Android/avd/Pixel_XL_API_25.avd /
Après cela, l'émulateur a démarré. Ce n’est pas idéal, mais cela bloquait mon développement et j’ai donc dû relancer l’émulateur. J'espère que quelqu'un d'autre sera capable de comprendre ce qui s'est cassé dans la configuration.
UPDATE: Identifié le problème de configuration!
J'ai remarqué régulièrement que l'erreur de console "Votre émulateur est obsolète, veuillez l'actualiser en lançant Android Studio:". J'ai donc décidé de vérifier:
$ which emulator
<$Android_SDK_ROOT>/tools/emulator
Avec l'aide de ce thread :
Le problème est qu'il y a deux émulateurs: un dans
$Android_SDK_ROOT/tools
, un autre en$Android_SDK_ROOT/emulator
. Celui de$Android_SDK_ROOT/tools
ne peux pas commencer. Placez$Android_SDK_ROOT/emulator
avant$Android_SDK_ROOT/tools
dans votre variable$PATH
, il convient de corriger le problème.
REMARQUE: pour la plupart des utilisateurs de Mac, vous pouvez modifier votre ~/.bash_profile
pour modifier ces paramètres, puis exécutez $source ~/.bash_profile
pour charger les mises à jour. Dans mon cas particulier, j’avais aussi d’anciennes valeurs pour $ Android_HOME que je devais effacer.
Le vrai problème, du moins sur Ubuntu 16.10 et 17.04 et Andoid Studio 2.4 Preview 7 (mais cela pourrait arriver avec tout dérivé de Debian et les versions précédentes d'Android Studio), est que Google distribue une bibliothèque libstdc ++ non fonctionnelle avec l'émulateur outils. Ils distribuent la version 6.0.18, mais j'ai trouvé que celui qui fonctionne est 6.0.22.
EDIT: Des rapports indiquent que la version 6.0.21 de libstdc ++ fonctionne aussi bien que la version 6.0.22.
Donc, vous avez 2 options:
Option 1
rm
les précédentes bibliothèques de Google qui ne fonctionnaient pas dans/yoursdkpàth/emulator/lib64/libstdc ++
Téléchargez et extrayez les libs de paquet officiel de libstdc ++ in/yoursdkpàth/emulator/lib64/libstdc ++
N'essayez pas d'installer le fichier .deb, d'extraire les fichiers/fichiers binaires qu'il contient (les 2 fichiers binaires se trouvent dans un dossier nommé "lib") et de les copier de manière manuelle dans le chemin recommandé.
Option 2
Créer un lien vers la bibliothèque distribuée avec Ubuntu, qui est déjà la version 6.0.22
cd ~/Android/Sdk/emulator/lib64/libstdc++/
mv libstdc++.so.6 libstdc++.so.6.bak
mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0.22
IMPORTANT 1: Google ne semble pas au courant du problème. À chaque mise à jour apportée au package Android Emulator dans Android Studio, il rompt la fonctionnalité qui consiste à remplacer les bibliothèques C++ de votre SDK par des anciennes/endommagées. La solution consiste à répéter l'une des procédures ci-dessus.
IMPORTANT 2: cela n'est valable que si vos AVD sont configurés pour utiliser votre GPU PC en tant qu'hôte pour une accélération vidéo (Hardware GLES 2.0). La sélection de Sofware GLES 2.0 sur votre AVD fonctionnera sans les modifications suggérées, mais votre émulateur deviendra péniblement lent.
Avez-vous vérifié l'émulateur Android installé dans ** SDK Tools ?
Allez dans Paramètres-> sdk-tools .
Voir si Android est installé ou non.
J'ai le même problème. Lorsque j'ai vérifié les outils du SDK, j'ai constaté que l'émulateur Android n'était pas installé.
Le libstdc++.so.6
en est la cause (comme l'a souligné @doruMarinau); Android Studio 2.3 a déplacé le fichier dans un nouveau dossier your_sdk/emulator/lib64
.
Si vous utilisez Linux, créez un lien symbolique pour celui-ci:
$ ln -sf /usr/lib/libstdc++.so.6 /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6
La solution est la suivante: Outils - Android - Sdk managertab Outils Sdk Install emulator 25.3.1
Allez dans Sdk/emulator/lib64/libstdc++
déplacez libstdc++.so.6
et libstdc++.so.6.0.18
dans mon dossier (je l'ai créé) (ou tout autre emplacement) en tant que sauvegarde et copiez libstdc++.so.6
, libstdc++.so.6.0.21
à partir de usr/lib64
; réessayez de lancer votre périphérique virtuel.
C’est une erreur libGL et un problème libstdc ++. Impossible de lancer AVD dans l’émulateur . Il s’agit d’un bogue connu que vous pouvez facilement vaincre en quelques étapes simples.
J'ai testé cette solution sur un Ubuntu 16.10 64bit
Solution:
$adb kill-server
$adb start-server
Après cela, démarrez votre émulateur depuis le studio Android. Si cela ne fonctionne pas, passez à la solution suivante.
Solution alternative:
Commencez par installer des packages et des bibliothèques:
$Sudo apt-get install lib64stdc++6:i386
$Sudo apt-get install mesa-utils
Deuxièmement, Tweak quelques liens:
$ cd YOURPATH/Android/Sdk/tools/lib64
$ mv libstdc++/ libstdc++.bak
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++
Troisièmement, relancez votre périphérique AVD et testez-le.
La seule solution qui a fonctionné pour moi était d'installer les bibliothèques manquantes suivantes:
$Sudo apt-get install lib64stdc++6:i386
$Sudo apt-get install mesa-utils
Une fois que vous les avez, mettez à jour celui de l'émulateur de sdk avec les éléments suivants:
$ ln -sf /usr/lib/libstdc++.so.6 /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6
Lancez à nouveau votre émulateur et cela fonctionnera parfaitement.
À partir de cette version, l'émulateur Android sera publié séparément des outils du SDK . Installez simplement Android Emulator à l'aide des outils sdk de votre studio Android
Cela me rend fou ces derniers jours. Voici ce qui a fonctionné pour moi:
Les variables Android_HOME, Android_SDK_ROOT
dans "Variables d'environnement système" étaient différentes de Android Studio -> Settings -> Android SDK Location
. Donc, quand j'ai changé les variables d'environnement, AVD a commencé!
(Après avoir modifié la variable d'environnement, vous devez redémarrer Android Studio)
Mon problème était Android_SDK_HOME
pointant vers d:\.Android
au lieu de d:\
. Impossible de trouver les images plus.