Émulateur Android-5554 hors ligne

136

J'ai un problème avec l'émulateur-5554, il ne cesse de me dire qu'il est hors ligne.

Quand je fais un à adb devicespartir de la ligne de commande, il dit

emulator-5554 offline

Même après un nouveau redémarrage, j'essaie cette commande et elle indique toujours qu'elle est hors ligne.

Le problème est que lorsque j'essaie d'installer des fichiers .apk sur l'émulateur à l'aide abd install <path>de l'invite de commande, cela me dit qu'il est hors ligne, si je crée un autre appareil et l'exécute, j'essaye d'installer les fichiers .apk, il dit que je ont trop d'appareils connectés. Donc, en d'autres termes, je ne peux pas installer mes fichiers .apk.

Comment diable puis-je me débarrasser de ce foutu émulateur-5554? J'ai entendu dire que si vous redémarrez, cela devrait effacer tous les périphériques, mais cela ne semble pas fonctionner. C'est comme s'il était initialisé au démarrage de mon ordinateur. Quelqu'un a-t-il rencontré ce problème?

Merci

hanesjw
la source
3
Afin de déterminer si le problème est l'émulateur, essayez ceci: 1. Ouvrez un émulateur. 2. Ouvrez un autre émulateur. 3. adb devicespour obtenir les noms des émulateurs. 4. Essayez d'installer l'APK en exécutant: adb -s NAME_OF_DEVICE install file.apk5. Dites-nous ce qui se passe.
Cristian
Je vais essayer quand je rentre à la maison (au travail en ce moment), je ne savais pas que vous pouviez spécifier l'appareil sur lequel vous souhaitez installer. Cela devrait être vraiment utile. Je mettrai à jour dans quelques heures. Merci pour la réponse!
hanesjw
Merci encore pour le commentaire. J'ai pu installer l'apk sur l'émulateur en faisant ce que vous avez dit. Le déconnecté reste toujours sur ma liste d'appareils, mais tout ce que je voulais faire était d'installer ce .apk. Merci encore, cela a fonctionné!
hanesjw
Je pense que cette question est liée à: stackoverflow.com/questions/6013624/… Essayez de jeter un oeil à ce fil.
ivy
Cela ne répond pas à votre question, mais pourrait résoudre votre problème - adb -ddes périphériques USB spécifiés plutôt que des émulateurs, des adb -eémulateurs plutôt que des périphériques USB, et adb -s NAMEje pense que cela peut être utilisé pour spécifier spécifiquement quel périphérique vous voulez, bien que je ne sache pas si le dernier on travaille toujours comme vous le pensez.
Erhannis

Réponses:

62

Dans un tel cas, vous pouvez effectuer toutes les opérations suivantes pour être assuré que votre émulateur recommence à fonctionner:

  1. Accédez à cmd et tapez adb kill-server
  2. Accédez au gestionnaire de tâches et recherchez adbdans les processus. Si vous en trouvez un, faites un clic droit dessus et cliquez sur la fin de l'arborescence du processus.
  3. Dans eclipse, allez dans Fenêtre> Gestionnaire de périphériques virtuels Android , cliquez sur l'AVD que vous souhaitez lancer, cliquez sur démarrer et décochez " Lancer à partir de l'instantané ", puis cliquez sur lancer.

C'est tout! Cela prendra un certain temps et devrait résoudre votre problème.

Kshitij Mittal
la source
Cela a également fonctionné pour moi (tuer ADB n'a pas résolu mon problème, dans aucune situation).
Booger
dès que j'ai tué cet arbre de processus, la liste des périphériques en cours d'exécution adb s'est effacée :) cela a fonctionné. <3 merci
DeathRs
10
Dans Android Studio, changer l'option de démarrage de l'appareil virtuel de Quick Boot à Cold Boot fonctionne pour moi.
eldes
Où puis-je trouver le paramètre «Lancer à partir de l'instantané» dans le Gestionnaire de périphériques Android lorsque je l'exécute à partir de Visual Studio 2019?
jacktric
106

1 . Il vous suffit de "Effacer les données" pour résoudre ce problème.

entrez la description de l'image ici

2. Si cela ne fonctionne pas, accédez à l'appareil émulé et activez les options du développeur> activez le débogage USB

Xakiru
la source
1
La désinstallation de l'application de l'émulateur a fait l'affaire pour moi. Mais c'est la même idée que d'effacer les données
James
1
Cela a aidé à combiner avec «Cold Boot now» juste en dessous de «Wipe Data».
S. Gissel
tks tellement, vous avez sauvé ma journée
Manh Nguyen
24

La façon dont Android détecte les émulateurs consiste à analyser les ports à partir du port 5555.

Le numéro que vous voyez dans la adb devicesliste (dans votre cas 5554) sera un de moins que le port que adb trouve ouvert.

Vous avez probablement un processus en cours d'exécution qui écoute sur le port 5555. Pour vous débarrasser du périphérique "hors ligne", vous devrez trouver cette application et la fermer ou la reconfigurer pour écouter un autre port.

Brigham
la source
La question portait sur ADB. Les numéros de port ADB commencent à 5555.
Brigham
2
"Vous avez probablement un processus en cours d'exécution qui écoute sur le port 5555". Cela a vraiment aidé car nous utilisions un autre serveur sur ce port et l'avions totalement oublié!
abhijit
Cela a toujours commencé sur 5554 - sur tous mes PC (à la maison et au travail) ... et c'est toujours MÊME (5554, 5556, 5558, 5560, ...) en utilisant plusieurs émulateurs.
Phantômaxx
Frank, pourquoi pensez-vous qu'ils sont tous égaux? C'est parce qu'Android utilise également les ports impairs entre les deux.
Brigham
Cela m'a aidé aussi! J'ai eu un port ouvert sur 5555 qui apparaît comme émulateur 5554 (?). Tous ceux qui ont déjà essayé des réponses non fonctionnelles de style "redémarrer le serveur" devraient continuer et portscan leur hôte local. J'ai supposé qu'ADB utiliserait des périphériques USB plus directement, ne regarderait pas mes ports locaux et ne ferait pas d'hypothèses sur l'existence d'un émulateur sans même faire une vérification de protocole.
mvr le
22

Cette solution est pour Windows.

(Voir la solution de @Chris Knight pour Mac / Linux )

  1. Démarrez Windows Powershell:

    Démarrer -> tapez 'powershell' -> Appuyez sur ENTRÉE

  2. 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 des ordures.

  1. Pour @Brigham , "La façon dont Android détecte les émulateurs est de scanner 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 tous les deux commencent par "565". Je rechercherai donc les ports utilisés en commençant par 565. Exécuter: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
  1. Le dernier champ de cette sortie est le PID (Process ID) - dans ce cas, il s'agit du PID 5944 pour ces deux ports. Voyons donc ce qu'est cet ID de processus. Exécuter: tasklist /v | Select-String 5944. Remplacez 5944 par la sortie 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 ADB. Comme indiqué par d'autres réponses, il pourrait également s'agir d'autres programmes.

  1. Maintenant, tuez simplement cet ID de processus. Exécutez kill 5944en remplaçant 5944 par le PID dans la commande précédente.

PS C:\Users\CJBS> kill 5944
  1. Pour confirmer que l'émulateur faux a disparu, réexécutez la commande suivante: adb devices

PS C:\Users\CJBS>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
12b80FF443      device

ADB redémarre (comme il a été précédemment tué), et il ne détecte plus de faux émulateurs.

CJBS
la source
9

J'ai finalement résolu ce problème, j'ai dû accéder aux options du développeur depuis les paramètres de l' émulateur , puis défiler un peu vers le bas activé le débogage USB. Mon appareil a été instantanément reconnu en ligne et je n'ai plus rencontré ce problème. J'ai essayé de redémarrer le studio et l'émulateur Android , en tuant le processus adb , mais cela n'a pas fonctionné.

Shamsul Arefin Sajib
la source
1
vous êtes un héros!
Felipe Castilhos
Salut @Shamsul pouvez-vous s'il vous plaît décrire comment accéder aux options de développement à partir des paramètres, dans l'émulateur? Je suppose que vous faites référence à AVD Manager, dans Android Studio. J'ai le même problème décrit dans ce fil et j'ai essayé toutes les choses suggérées, sauf votre suggestion. Je ne vois aucune option de développement pour l'émulateur dans AVD Manager.
Eddie le
Salut Eddie, la procédure habituelle pour activer l'option développeur est la même pour l'émulateur et les appareils réels. Trouvez le numéro de version dans les informations du logiciel, appuyez dessus à plusieurs reprises, après peut-être 7 à 10 taps, vous verrez que l'option développeur a été activée.
Shamsul Arefin Sajib le
8

Si vous êtes sous Linux ou Mac et en supposant que le périphérique hors ligne est 'emulator-5554', vous pouvez exécuter ce qui suit:

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 tuer ce processus avec:

sudo kill -9 4848

et l'appareil fantôme hors ligne n'est plus!

Chris Knight
la source
8

Depuis AVD Manager, essayez l'option "Cold Boot Now" dans la liste déroulante. Cela a fonctionné pour moi!

Paulo Taylor
la source
C'est probablement la première chose que les gens devraient essayer avant de se
lancer
7

Dans mon cas, j'ai trouvé un processus qui empêche l'adb de fonctionner correctement.
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 du processus MONyog.exe

Ryan Ou
la source
7

J'ai résolu ce problème en ouvrant mon invite de commande:

adb kill-server

appareils adb

Après le démarrage, ADB détecte maintenant le périphérique / émulateur.

DagW
la source
7

J'ai également 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 dans le gestionnaire de périphériques virtuels Android et en ai créé de nouveaux. Le problème était dans la configuration de l'image système CPU / ABI du gestionnaire de périphériques virtuels Android . Sur mon émulateur de machine Windows10 avec image système, x86est toujours hors ligne où l'émulateur avec image système x86_64fonctionne correctement comme prévu. Sois juste conscient de ça

Volodymyr
la source
sur mon cas, les images système x86 de Windows 10, il me suffit de supprimer tous les émulateurs puis de les recréer
Dika
1
Merci beaucoup, j'ai passé tellement de temps à essayer de faire fonctionner cela et c'était mon problème
Brendan Samek
Idem ici, mais sous Windows 7.
Viktor Brešan
5

Ecrivez

adb -e reboot

et soyez heureux avec adb))

oleg gutov
la source
Cela indique à ADB de redémarrer l'émulateur. Cela ne peut pas fonctionner s'il est marqué hors ligne.
shkschneider
fonctionne si vous exécutez précédemment rm -Rf ~/.androidpour nettoyer les périphériques hors ligne. Meilleure commande et une seule pour résoudre mon problème. Non kill-serverou a start-serverfait l'affaire.
Victor R. Oliveira
4

L'option "effacer les données utilisateur" a finalement résolu mon problème. effacez simplement les données utilisateur chaque fois que vous démarrez l'émulateur. Ça fonctionne toujours pour moi! J'utilise windows 8 x64, eclipse

Sunil Kumar
la source
essayé tout ci-dessus, mais a travaillé avec la suppression des données utilisateur d'effacement seul.Merci
Sai Ram
@SaiRam, vous n'avez pas essayé tout ce qui précède, car cet indice a été répété dans plusieurs réponses. Aide également Cold Boot Now.
CoolMind
@SaiRam, désolé. :) Merci.
CoolMind
4

Activez le débogage USB dans votre émulateur

  1. Paramètres> À propos du téléphone> Numéro de build> Appuyez dessus 7 fois pour devenir développeur;
  2. Paramètres> Options du développeur> Débogage USB.

C'est ça, profitez

Dhaval Jivani
la source
La réactivation du débogage USB m'a aidé (éteindre et rallumer)
Maxim Mazurok
4

Depuis la liste des gestionnaires AVD dans la liste déroulante des actions: démarrage à froid maintenant

le redémarre sans aucune douleur ci-dessus.

Alp Altunel
la source
2

Avez-vous essayé de supprimer et de recréer votre AVD? Vous pouvez supprimer manuellement les fichiers AVD en accédant au répertoire dans lequel ils sont stockés (dans le sous-répertoire /.android/avd de votre utilisateur).

JRL
la source
Salut, merci pour la réponse. J'ai essayé ça en fait. Toujours là. Je suis tenté de tout réinstaller.
hanesjw
2

Accédez au gestionnaire de tâches Windows et terminez le processus "adb.exe". Il peut y avoir plusieurs instances du même processus, assurez-vous de les terminer toutes.

Rohit
la source
1
Que diriez-vous de "adb kill-server"?
DagW
2

Avez-vous installé des bluestacks? Si vous le faites, les processus d'arrière-plan qu'il exécute créent le périphérique hors ligne "emulator-5554".

Accédez au gestionnaire de tâches et terminez tous les processus avec la description de "Bluestacks"

cnfw
la source
2

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 tuer: sudo lsof -i :5555 | awk '{print $2}' | xargs kill

les appareils adb (faux) n'apparaîtront plus dans la liste

Micheal Kris
la source
2

Dans mon cas, l'émulateur fonctionnait avec Oreo et les versions antérieures, mais pas avec Pie, et tout ce que j'ai essayé semblait n'avoir aucun effet. Ce qui a finalement fonctionné, c'est la mise à jour de l'émulateur à la dernière version (version 28).

PulseJet
la source
moi aussi ... assez ennuyeux
Analizer
2

Dans mon cas, j'ai commencé dans «Cold Boot Now» et j'ai cliqué sur Message pour autoriser la connexion.

Marcus Menezes
la source
2

ouvrez votre émulateur,

réglage -> à propos du périphérique émulé -> cliquez à plusieurs reprises sur le numéro de build -> ouvrez les options de développement -> ouvrez le débogage USB

zhiqiu lin
la source
Le problème est que l'émulateur n'a qu'un écran noir. Vous ne pouvez le faire que si vous pouvez accéder aux paramètres.
Jeanne vie
1

J'ai trouvé que l'environnement d'émulation apparaît comme "hors ligne" lorsque la révision adb que j'utilise n'était pas récente. J'ai correctement mis à jour mes chemins (et supprimé l'ancienne version adb) et sur "adb kill-server", "adb devices", l'environnement d'émulation n'est plus apparu comme "offline".

J'ai pu immédiatement utiliser "adb shell" après ce point.

Keitai Otaku
la source
1

Essaye ça ...

  1. Fermez l'émulateur s'il est en cours d'exécution.

  2. Redémarrez Emulator et attendez qu'il soit en ligne.

  3. entrez Command dans commandprompt et appuyez sur la touche ENTRÉE: adb tcpip 5555

(Assurez-vous qu'un seul émulateur s'exécute à la fois.)

  1. adb -s émulateur-5555 emu kill

  2. Appuyez sur la touche Entrée ...

  3. Terminé.

  4. vérifier les périphériques par la commande "adb devices" dans cmd.

WonderSoftwares
la source
1

Si l'émulateur est déjà ouvert ou en cours d'exécution, il vous indiquera qu'il est hors ligne. Vous pouvez vérifier à nouveau 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 s'affichera comme occupé) et après cela, vous pourrez exécuter votre application. J'espère que cela aide quelqu'un.

G Jeny Ramirez
la source
1

J'ai tout essayé, mais seulement celui-ci fonctionne pour mon cas: utilisez le gestionnaire de SDK et réinstallez l'image système. Android Studio, cliquez sur Configurer, Gestionnaire de SDK, Lancez le Gestionnaire de SDK autonome, Cochez toutes les "API Google Intel x86 * Image système", "Intel x86 Atom * Image système" et installez. Puis redémarrez le studio Android.

Vous devrez peut-être reconfigurer et effacer le périphérique virtuel avec AVD Manager, assurez-vous de choisir la version x86.

EricF
la source
Pour moi, c'était la version x86_64 qui fonctionnait, les autres ne fonctionnaient pas
hiddeneyes02
1

Assurez-vous que votre intégration ADB activée est marquée; allez dans Outils> Android> Activer l'intégration ADB.

si ce n'est pas coché, cochez cette option et fermez votre appareil virtuel et rouvrez-le. cela a fonctionné pour moi .. bonne chance !!

Leo Santana
la source
1

J'ai eu le même problème avec mon appareil virtuel. Le problème est dû à l'image Oreo des appareils 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 allait bien.

J'espère que ça aide, au revoir

furdu
la source
Quelle situation étrange, mais ça l'a corrigée pour moi aussi.
reidisaki
0

Il suffit de supprimer et de créer à nouveau le matériel avd. Cela fonctionnera.

Gagandeep Singh
la source
0

Dans mon cas, la cause était que j'avais repris une VM avec android-x86 à l'intérieur. Le redémarrage de la machine virtuelle avec Android-x86 et le redémarrage du serveur adb ont résolu le problème.

Ullrich
la source
0

Cela est dû au fait qu'un autre périphérique virtuel est installé sur votre machine. Ce pourrait être Bluestacks car j'ai également rencontré un problème similaire. J'ai désinstallé Bluestacks, puis j'ai vérifié que adb devices cela fonctionnait bien.

Aditya Harsh
la source