J'ai un problème avec emulator-5554, il me répète qu'il est hors ligne.
Quand je fais un adb devices
à partir de la ligne de commande, il est écrit
emulator-5554 offline
Même après un nouveau redémarrage, j'essaie cette commande et elle dit toujours qu'elle est hors ligne.
Le problème est que lorsque j'essaie d'installer des fichiers .apk sur l'émulateur à l'aide de abd install <path>
à partir de la commande Invite, il me dit qu'il est hors ligne. Si je crée un autre périphérique et l'exécute, j'essaie ensuite d'installer les fichiers .apk. J'ai trop d'appareils connectés. En d'autres termes, je ne peux pas installer mes fichiers .apk.
Comment puis-je me débarrasser de ce fichu émulateur-5554? J'ai entendu dire que si vous redémarrez, tous les périphériques devraient être effacés, mais cela ne semble pas fonctionner. C'est comme si on commençait à l'initialiser au démarrage de mon ordinateur. Quelqu'un at-il rencontré ce problème?
Merci
Dans un tel cas, vous pouvez effectuer toutes les opérations suivantes pour être sûr que votre émulateur fonctionnera à nouveau:
C'est tout! Cela prendra un certain temps et cela devrait résoudre votre problème.
Android détecte les émulateurs en analysant les ports à partir du port 5555.
Le nombre que vous voyez dans la liste adb devices
(dans votre cas, 5554) sera un de moins que le port trouvé par adb.
Vous avez probablement un processus en cours d'écoute sur le port 5555. Pour supprimer le périphérique "hors ligne", vous devez trouver cette application et la fermer ou la reconfigurer pour écouter un autre port.
(Voir La solution de @Chris Knight pour Mac/Linux)
Démarrez Windows Powershell:
Démarrer -> tapez 'powershell' -> appuyez sur ENTER
Exécutez la commande suivante: adb devices
PS C:\Users\CJBS>adb devices
List of devices attached
emulator-5656 Host
emulator-5652 Host
12b80FF443 device
Dans ce cas, 12b80FF443 est mon périphérique physique et les entrées emulator- * sont illisibles.
Per @Brigham , "La façon dont Android détecte les émulateurs est de En balayant les ports à partir du port 5555.". Le numéro de port est indiqué après le nom de l'émulateur (dans ce cas, 5656 et 5652). Le numéro de port à vérifier est le numéro de port de l'émulateur plus 1. Donc, dans ce cas: -
5656 + 1 = 5657
5652 + 1 = 5653
Voyons donc quel programme utilise ces ports. Dans ce cas, les ports à vérifier commencent par "565". Je vais donc rechercher les ports utilisés à partir de 565. Execute: netstat -a -n -o | Select-String ":565"
PS C:\Users\CJBS> netstat -a -n -o | Select-String ":565"
TCP 127.0.0.1:5653 127.0.0.1:5653 ESTABLISHED 5944
TCP 127.0.0.1:5657 127.0.0.1:5657 ESTABLISHED 5944
tasklist /v | Select-String 5944
. Remplacez 5944 par le résultat de la commande précédente:PS C:\Users\CJBS> tasklist /v | Select-String 5944
adb.exe 5944 Console 1 6,800 K Running MyPCName\CJBS 0:06:03 ADB Power Notification Window
Quelle surprise. C'est la BAD. Comme indiqué par d'autres réponses, il pourrait également s'agir d'autres programmes.
kill 5944
en remplaçant 5944 par le PID de la commande précédente.PS C:\Users\CJBS> kill 5944
PS C:\Users\CJBS>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
12b80FF443 device
La BAD redémarre (comme elle avait été tuée auparavant) et ne détecte plus de faux émulateurs.
Dans mon cas, j’ai trouvé un processus qui fait que adb ne fonctionne pas bien.
Vous pouvez essayer de tuer un processus étrange et exécuter des "périphériques adb" pour tester.
Cela a fonctionné pour moi:
tuer le nom de processus MONyog.exe
J'ai résolu ceci en ouvrant mon invite de commande:
adb kill-server
périphériques adb
Après le démarrage, ADB détecte maintenant le périphérique/émulateur.
Si vous êtes sous Linux ou Mac et en supposant que le périphérique hors ligne est "emulator-5554", vous pouvez exécuter les opérations suivantes:
netstat -tulpn|grep 5554
Ce qui donne la sortie suivante:
tcp 0 0 127.0.0.1:5554 0.0.0.0:* LISTEN 4848/emulator64-x86
tcp 0 0 127.0.0.1:5555 0.0.0.0:* LISTEN 4848/emulator64-x86
Cela me dit que l'ID de processus 4848 (le vôtre sera probablement différent) est toujours à l'écoute sur le port 5554. Vous pouvez maintenant arrêter ce processus avec:
Sudo kill -9 4848
et le ghost offline-device n'est plus!
J'ai aussi eu le même problème. J'ai essayé toutes les solutions décrites ici mais elles ne m'ont pas aidé. Ensuite, j'ai supprimé tous les émulateurs du Gestionnaire de périphériques virtuels Android et en ai créé de nouveaux. Le problème provenait de la configuration de l'image système CPU/ABI du gestionnaire de périphériques virtuels Android. Sur mon émulateur de machine Windows10 avec une image système, x86
est toujours hors ligne, où un émulateur avec une image système x86_64
fonctionne correctement. Juste être conscient de cela
À partir de la liste des gestionnaires AVD dans la liste déroulante des actions: Cold Boot Now
le redémarre sans toute la douleur ci-dessus.
J'ai finalement résolu ce problème, Je devais accéder au Options du développeur à partir du Paramètres de Emulator, . Instantanément, mon appareil a été reconnu en ligne et je ne suis plus confronté à ce problème. J'ai essayé redémarrer Android studio et l'émulateur, tuant le processus adb, mais ceux-ci ne fonctionnaient pas.
J'ai résolu le problème en résolvant de n'avoir jamais rien à faire pour le reste de ma vie avec 'Xamarin', 'Android', 'adb', 'Google', 'AVD' ou des émulateurs de quelque nature une pile fumante d'excréments non-testés
L'option "effacer les données de l'utilisateur" a finalement résolu mon problème. effacez simplement les données de l'utilisateur à chaque démarrage de l'émulateur. Ça fonctionne toujours pour moi! J'utilise Windows 8 x64, Eclipse
Activer le débogage USB dans votre émulateur
C'est ça profiter
Allez dans le gestionnaire de tâches Windows et terminez le processus "adb.exe". Il peut y avoir plus d'une instance du même processus, assurez-vous de toutes les terminer.
Ecrivez
adb -e reboot
et soyez heureux avec adb))
Dans le gestionnaire AVD, essayez l’option «Démarrage à froid maintenant» dans la liste déroulante. Cela a fonctionné pour moi!
Avez-vous des casiers bleus installés? Si vous le faites, les processus d'arrière-plan qu'il exécute créent le périphérique hors ligne "emulator-5554".
Allez dans le gestionnaire de tâches et terminez tous les processus avec la description de "Bluestacks"
J'ai constaté que l'environnement d'émulation apparaît comme "hors ligne" lorsque la révision d'annonce que j'utilise n'est pas récente. J'ai correctement mis à jour mes chemins (et supprimé l'ancienne version d'adb) et sur "adb kill-server", "adb devices", l'environnement d'émulation n'est plus apparu comme "hors ligne".
J'ai immédiatement pu utiliser "adb Shell" après ce moment.
Si l'émulateur est déjà ouvert ou en cours d'exécution, il vous dira qu'il est hors ligne. Vous pouvez vérifier sur la ligne de commande (Ubuntu) et exécuter:
adb devices
Vous devez voir votre émulateur hors ligne, vous devez fermer l'instance en cours d'exécution de l'émulateur (car le port sera affiché comme occupé) et vous pourrez ensuite exécuter votre application. J'espère que ça aide quelqu'un.
Avez-vous essayé de supprimer et de recréer votre AVD? Vous pouvez supprimer manuellement les fichiers AVD en allant dans le répertoire où ils sont stockés (dans le sous-répertoire /.Android/avd de votre utilisateur).
Assurez-vous que votre intégration d'activation ADB est marquée Allez dans Outils> Android> Activer l'intégration ADB.
si cette case n'est pas cochée, cochez cette option, fermez votre périphérique virtuel et rouvrez-le. cela a fonctionné pour moi .. bonne chance !!
J'ai tout essayé, mais seul celui-ci fonctionne dans mon cas: Utilisez le gestionnaire de SDK et réinstallez l'image système Android Studio, cliquez sur Configurer, Gestionnaire de SDK, Lancer le gestionnaire de SDK autonome, Cochez toutes les "API Google Intel x86 * Image système "," Intel x86 Atom * Image système "et installez-le. Puis redémarrez Android Studio.
Vous devrez peut-être reconfigurer et effacer le périphérique virtuel avec AVD Manager, assurez-vous de choisir la version x86.
Essaye ça ...
Fermez l'émulateur s'il est en cours d'exécution.
Redémarrez Emulator et attendez qu’il soit en ligne.
entrez Command in commandprompt et appuyez sur la touche Entrée: adb tcpip 5555
(Assurez-vous qu’un seul émulateur s’exécute à la fois.)
adb -s emulator-5555 emu kill
Appuyez sur la touche Entrée ....
Terminé.
vérifiez les périphériques à l'aide de la commande "périphériques adb" dans cmd.
Je vais ajouter une autre solution possible ici, qui est ce qui a fonctionné dans mon cas.
J'ai trouvé qu'il existait un processus appelé SpiceWorksEventProcessor en cours d'exécution, qui bloquait le port 5555 et était apparemment lu par adb en tant qu'émulateur. Tuer ce processus est ce qui a finalement enlevé ce dispositif émulateur obstiné pour moi.
Je ne suis pas sûr de la nature de cette chose, mais si vous l'avez, cela pourrait être la cause de votre émulateur hors ligne.
À votre santé
sur linux ou mac, le port bloqué sera emulator-id + 1 donc 5555 donc:
Sudo lsof -i :5555
vous montrera le pid du processus qui prend le port (devrait être la deuxième colonne) afin de le détruire __.
Sudo lsof -i :5555 | awk '{print $2}' | xargs kill
alors les périphériques adb (faux) n'apparaîtront plus dans la liste
J'ai eu le même problème avec mon périphérique virtuel. Le problème est dû à l'image Oreo des périphériques virtuels intégrant le Play Store. Pour résoudre ce problème, j'ai installé un nouvel appareil sans le Play Store intégré et tout s'est bien passé.
J'espère que ça aide, au revoir
Dans mon cas, j'ai commencé dans «Cold Boot Now» (Démarrage à froid maintenant) et j'ai cliqué sur Message (Message) pour autoriser la connexion.
Dans mon cas, j'ai décoché "GPU Host" et son travail :)
Sous MAC, vous pouvez utiliser l'utilitaire Activity Monitor car, contrairement à Linux, nous ne pouvons pas utiliser netstat -tulpn command dans MAC. Recherchez l'instance en cours d'exécution de l'émulateur, généralement qemu-system-i386 . Tuez cette instance et vous ne verrez aucun émulateur de fantôme en cours d'exécution.
Le moyen le plus simple de saisir l'utilitaire de moniteur d'activité consiste à utiliser la recherche Spotlight. appuyez simplement sur cmd-space et tapez Activity Monitor .
Supprimez simplement et créez à nouveau le matériel avd. Cela fonctionnera.
Dans mon cas, la cause était que j'avais repris un VM avec Android-x86 à l'intérieur. Le redémarrage de VM avec Android-x86 et le redémarrage du serveur adb ont résolu le problème.
Voir emulator-5554 non autorisé pour les périphériques adb . Sur l'émulateur API 29, je lance la commande adb devices
et reçois le message emulator-5554 unauthorized
. Ensuite, j'ai créé un nouveau périphérique avd
à partir de Google APIs
image (dans mon cas, Q, x86) et non à partir de Google Play
.
Cela est dû au fait qu'un autre périphérique virtuel est installé sur votre ordinateur. Ce pourrait être Bluestacks comme j'ai également fait face à un problème similaire. J'ai désinstallé Bluestacks puis vérifié adb devices
Il fonctionnait bien alors.
ouvrez votre émulateur,
réglage -> à propos du périphérique émulé -> cliquez plusieurs fois sur le numéro de build -> options de développement ouvertes -> débogage USB
Toutes les réponses ci-dessus n'ont pas aidé, puis j'ai supprimé et recréé l'émulateur tout a bien fonctionné
Dans mon cas, l'émulateur travaillait avec Oreo et Lower, mais pas avec Pie, et tout ce que j'ai essayé semblait n'avoir aucun effet. Ce qui a finalement fonctionné a été de mettre à jour l’émulateur au plus tard (version 28).
Essuyez simplement les données utilisateur du gestionnaire AVD, puis entrez adb kill-server et les périphériques adb . L'effacement des données permet également d'économiser beaucoup d'espace mémoire sur le système.