web-dev-qa-db-fra.com

Comment rattacher l'émulateur Android à ADB?

Après avoir démarré l'émulateur en appuyant sur Debug dans Eclipse, après un certain temps, il se déconnecte de l'ADB, mais l'émulateur reste ouvert. Il est réactif, je peux naviguer et démarrer des applications.

Comment puis-je rattacher l'émulateur à ADB, pour pouvoir déboguer depuis Eclipse?

(la solution de contournement actuelle consiste à terminer l'émulateur, à fermer Eclipse et à redémarrer les deux, ce qui prend 10 minutes car vous savez que l'émulateur a besoin de temps pour démarrer)

MODIFIER 1
Découvrez cette image:

enter image description here

MODIFIER 2

Après avoir tué et redémarré le serveur. Un processus d'émulation apparaît dans l'onglet Périphériques dans Eclipse. Mais cela ne peut pas être étendu, et je ne vois pas de sous-processus.
Je ne peux pas déjà frapper le débogage, comme il est dit: le débogage est déjà en cours d'exécution. (Comment puis-je arrêter le débogage?)

Si j'ai réussi à démarrer le débogage d'un autre projet, il se bloque dans l'émulateur en me disant: en attente de la connexion du débogueur. Rien ne se passe.

40
Pentium10

Comme vous l'avez dit, le problème n'est pas Eclipse perd le contact avec l'émulateur, mais ADB - le Android Debug Bridge - perd le contact avec lui. Comme Eclipse utilise ADB pour communiquer avec l'émulateur lorsque ADB est cassé, Eclipse ne peut rien faire.

Pour résoudre ce problème arrêtez le serveur ADB en exécutant la commande suivante:

adb kill-server

Eclipse essaie alors généralement de redémarrer ADB, ou vous pouvez le redémarrer vous-même en exécutant une commande ADB, telle que:

adb devices

Si vous le faites, vous verrez une sortie comme celle-ci:

* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
emulator-5554   device

Vous pouvez également le faire via la souris, en utilisant l'option Réinitialiser adb dans les Périphériques vue dans Eclipse.

alt text

Il convient également de noter que la vue de la console a deux modes, DDMS et Android. Vous êtes généralement en mode Console mais c'est le mode DDMS qui affichera les messages d'état ADB. Sélectionnez les modes en cliquant sur le bouton avec l'icône Moniteur ou en utilisant la flèche à côté:

alt text

Si tout le reste échoue, essayez de tuer les processus adb du système d'exploitation. Sous Windows XP j'utilise:

TASKKILL /F /IM adb.exe
92
Dave Webb

Il existe un moyen plus simple. Depuis Eclipse, vous pouvez réinitialiser l'adb à partir du panneau [~ # ~] ddms [~ # ~] . Voici une courte vidéo à ce sujet "Réinitialiser ADB sur DDMS"

Voici une capture d'écran rapide de l'endroit où vous pouvez obtenir l'option.enter image description here

3
Munim Dibosh

Parfois, un kill-server ne m'aidera pas sur ma machine (WinXP). Par exemple, je ne vois plus l'émulateur dans la vue DDMS ou je le vois mais aucun processus ne s'exécute dessus.

Dans ces cas, je ferme l'émulateur et Eclipse et je tue manuellement le processus adb.exe de la liste des processus.

Lorsque je redémarre ensuite Eclipse et l'émulateur, tout va bien à nouveau.

Maintenant, j'ai juste besoin d'un raccourci clavier pour cela :-)

1
rflexor

Essayez avec adb kill-server et adb start-server. Même alors, le même problème se produit, tuez votre processus en cours de perspective ddms. Reportez-vous à ce lien ( http://www.jiahaoliuliu.com/2011/02/stopping-Android-applications-already.html ). Cela a résolu mon problème. J'espère aussi pour vous.

1
user1950448

sur un mac, je devais juste tuer adb du gestionnaire d'activité et rouvrir manuellement le programme à nouveau. avait Eclipse ouvert tout au long et cela a très bien fonctionné.

1
user1409438

Je teste une application sur un émulateur Android 4.0 (API niveau 14) et une fois que j'ai exécuté l'application, l'émulateur démarre et dès qu'il se charge, Eclipse DDMS se déconnecte de l'émulateur.

Voici la solution de contournement que j'utilise: Ouvrez le terminal, accédez aux outils de la plate-forme (C:\Android-sdk\platform-tools\ou partout où vous avez installé votre Android-sdk), et exécutez adb kill-server, puis exécutez, adb start-server. DDMS devrait maintenant lister l'émulateur - depuis Java, clic droit sur l'application -> Exécuter en tant que -> Android.

J'espère que cela t'aides.

0
Zorayr

Mon script bash pratique

#!/bin/bash
./path/to/adb kill-server
./path/to/adb start-server
./path/to/adb devices
0
amit