L'émulateur sur Android Studio ne démarre pas après la mise à jour des outils SDK vers 25.3.1
Après avoir mis à jour mes outils SDK Android aujourd'hui à 25.3.1, l'émulateur ne fonctionnera plus.
Je Peux ouvrir le gestionnaire AVD. Quand je clique sur "Play" sur L'un des émulateurs de la liste, je vois la barre ci-dessous sur Android Studio
Mais après que la barre de progression ait atteint la fin, rien ne se passe.
Je vois dans les notes de version que la dernière mise à jour a apporté des modifications à l'émulateur, donc je me demande si c'est un bug ou s'il me manque quelque chose que.
J'utilise Android Studio 2.3.
Des idées?
12 réponses
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.
Tout d'Abord, j'ai essayé de lancer l'émulateur en 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 -verbose
drapeau. J'ai essayé de réinstaller l'image système (par exemple, Android API 25 x86 w / Google API), Android Emulator 25.3.1, et recréer L'AVD mais rien n'a fonctionné.
Enfin comme solution de contournement, je il suffit de copier tous les fichiers système du répertoire SDK system images dans le répertoire AVD:
Exemple: Pixel XL (API Android 25 x86 avec API Google)
SOURCE: <android>
/ sdk / System-images / 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, Donc j'ai dû remettre l'émulateur en marche. J'espère que quelqu'un d'autre sera capable de comprendre quoi cassé dans la configuration.
Mise à jour: trouvé le problème de configuration!
J'ai remarqué que je voyais périodiquement l'erreur de console "votre émulateur est obsolète, veuillez mettre à jour en lançant Android Studio:" alors j'ai décidé de vérifier:
$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator
, Avec l'aide de cette thread:
Le problème est qu'il y a deux émulateurs: un dans
$ANDROID_SDK_ROOT/tools
, un autre dans$ANDROID_SDK_ROOT/emulator
. Celui de$ANDROID_SDK_ROOT/tools
ne peut pas démarrer. Placer$ANDROID_SDK_ROOT/emulator
avant$ANDROID_SDK_ROOT/tools
dans votre$PATH
variable, il devrait fixer 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, au moins sur Ubuntu 16.10 et 17.04 et Andoid Studio 2.4 Preview 7 (mais pourrait se produire avec N'importe quel dérivé Debian et les versions précédentes D'Android Studio), est que Google distribue une bibliothèque libstdc++ non fonctionnelle avec les outils d'émulateur. Ils distribuent la version 6.0.18, mais j'ai trouvé que celle qui fonctionne est 6.0.22.
EDIT: il y a des rapports que la version 6.0.21 de libstdc++ fonctionne aussi bien que 6.0.22.
Donc, vous avez 2 options:
Option 1
rm
les libs précédentes de Google qui ne fonctionnent pas dans / yoursdkpàth / emulator / lib64 / libstdc++
Téléchargez et extrayez les libs du paquet officiel libstdc++ dans / yoursdkpàth / emulator / lib64 / libstdc++
N'essayez pas d'installer le .DEB, extrayez les fichiers/binaires de l'intérieur (les 2 binaires sont dans un dossier nommé "lib") et copiez-les manuellement sur le chemin recommandé.
Option 2
Créer un lien SIM pour la lib 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: comme Google semble ne pas être au courant du problème, à chaque mise à jour qu'ils font au package de L'émulateur Android dans Android Studio, ils cassent la fonctionnalité en remplaçant vos bibliothèques C++ SDK de travail par celles cassées/plus anciennes. La solution consiste à répéter l'une des procédures ci-dessus.
IMPORTANT 2: ceci n'est valable que si vos AVD sont configurés pour utiliser votre GPU PC comme hôte pour la vidéo accelaration (Matériel GLES 2.0). La sélection de Sofware GLES 2.0 sur votre AVD fonctionnera sans aucune des modifications suggérées, mais votre émulateur deviendra douloureusement lent.
Avez-vous vérifié L'émulateur Android installé dans les outils * * SDK?
Aller Paramètre-> sdk-outils.
Voir si Android est installé ou non.
J'ai le visage même problème. quand j'ai vérifié les outils SDK, j'ai trouvé que L'émulateur Android n'était pas installé.
Le libstdc++.so.6
est la cause (comme indiqué par @ 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 cela:
$ ln -sf /usr/lib/libstdc++.so.6 /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6
La solution est: Outils - Android-Gestionnaire de Sdk onglet outils du kit Sdk installer l'émulateur 25.3.1
Cela a fonctionné pour moi:
Allez dans AVD Manager, puis, dans la colonne Actions, cliquez sur la flèche qui pointe dawn et sélectionnez "Effacer les données". Après cela, essayez d'exécuter l'émulateur.
C'est une erreur libGL et un problème libstdc++. Impossible de lancer L'émulateur. C'est un bug connu et vous pouvez facilement le battre avec 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 Android studio. Si cela ne fonctionne pas, aller de l'avant pour la solution suivante.
Solution Alternative:
Tout d'abord, installez quelques paquets et libs:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
Deuxième, 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 appareil AVD et testez-le.
Allez dans Sdk/emulator/lib64/libstdc++
déplacez libstdc++.so.6
et libstdc++.so.6.0.18
dans myfolder (j'ai créé ceci) (ou tout autre emplacement) en tant que sauvegarde et copie libstdc++.so.6
, libstdc++.so.6.0.21
à partir de usr/lib64
; essayez à nouveau de lancer votre périphérique virtuel.
Ça me rend dingue depuis quelques jours. Voici ce qui a fonctionné pour moi:
ANDROID_HOME, ANDROID_SDK_ROOT
les variables des "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)
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-ci dans l'émulateur du sdk avec ceux-ci comme suit:
$ ln -sf /usr/lib/libstdc++.so.6 /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6
Lancez à nouveau votre émulateur et cela fonctionnera très bien.
A partir de cette version, L'émulateur Android sera publié séparément des outils SDK. il suffit donc d'installer Android Emulator en utilisant les outils sdk dans votre android studio
Mon problème était ANDROID_SDK_HOME
pointant vers d:\.android
au lieu de d:\
. Impossible de trouver les images plus.