web-dev-qa-db-fra.com

Impossible d'ouvrir Selected VM port de débogage (8700)

J'essaie de déboguer la source Android à l'aide d'Eclipse en suivant les instructions fournies à l'adresse suivante:

http://source.Android.com/using-Eclipse

J'ai téléchargé le code source et je l'ai construit. Je suis les instructions dans le lien ci-dessus et tout va bien jusqu'à ce que je lance la commande ddms. À ce stade, si Eclipse est en cours d'exécution, le message d'erreur «Impossible d'ouvrir le port de débogage sélectionné VM (8700)». Si je ferme Eclipse, ddms s'exécutera sans problème et je pourrai traiter les processus de l'émulateur. Cependant, si j'ouvre maintenant Eclipse, j'obtiens la même erreur.

Dans tous les cas, peu importe ce que je fais, si j'essaie de déboguer à distance, cela échoue toujours avec "Echec de la connexion à la machine virtuelle distante".

Des idées?

Merci

29
John Gaby

Il semble que vous ayez deux problèmes:

  1. Vous essayez d'exécuter DDMS deux fois. Vous n'avez pas besoin d'exécuter la version autonome de DDMS car il existe une version de celle-ci intégrée à Eclipse dans le cadre du plug-in Android. Si vous passez à la perspective DDMS dans Eclipse, vous constaterez que toutes les fonctionnalités sont disponibles.

  2. Vous n'avez pas indiqué à DDMS quelle VM vous souhaitez déboguer sur localhost: 8700. Avant de tenter d'établir votre connexion de débogage à distance, vous devez accéder à la perspective DDMS et cliquer sur le système_process (ou le processus que vous souhaitez déboguer).

19
Tim Kryger

Le fichier de l'hôte Windows qui est perturbé est à C:\WINDOWS\system32\drivers\etc, et il devrait contenir cette ligne:

127.0.0.1 localhost

Si cela ne fonctionne pas, essayez d’apporter les modifications suivantes à Eclipse.

Sous Fenêtre -> Préférences -> Android -> DDMS:

  • Définissez le port du débogueur local de base sur "8601"
  • Cochez la case "Utiliser ADBHOST" et la valeur doit être 127.0.0.1
16
Colin

Je l'ai résolu en mettant fin au processus "adb.exe" via le Gestionnaire des tâches, puis en rechargeant le SDK via Windows-> Préférences ... J'utilise Eclipse Indigo sur Windows 7 64 bits.

7
Pallav

Je l'ai résolu en ouvrant le gestionnaire de tâches Windows et en fermant le processus "adb.exe". Fermez ensuite Eclipse et rouvrez-le. Il démarrera correctement sans erreur. 

4
sid_09

J'avais aussi ce problème (Windows 7), même si mon fichier/Windows/system32/drivers/etc/hosts contenait déjà 127.0.0.1 localhost.

J'ai essayé de changer les informations et le port ADBHOST dans les préférences Eclipse, mais cela n'a rien fait .

netstat -b indique "127.0.0.1" comme adresse source pour adb et l'émulateur, mais indique toujours le nom d'hôte de ma machine comme "adresse étrangère". Sur une intuition, j'ai essayé de déboguer avec ma machine pas connecté à n'importe quel réseau (pas de WiFi, rien n'est branché) ... et ça a fonctionné! (DDMS a pu se connecter à la VM sur le périphérique émulé et j'ai pu déboguer parfaitement.)

Je pense que les messages envoyés par DDMS et/ou adb ne restent pas sur ma machine locale (ils sont envoyés à mon routeur local). (C'est juste une supposition; je ne sais pas comment tester cela de manière concluante.) IOW, le bouclage ne fonctionnait pas comme il se doit .

Comme j'avais déjà 127.0.0.1 dans mes hôtes locaux, j'ai ajouté l'adresse de sous-réseau local de ma machine dans mon fichier hosts, en devinant que DDMS/adb utilisait peut-être cette adresse (vs. 127.0.0.1). Cela a semblé résoudre le problème pour moi .

Alors maintenant, mon fichier hosts a ces lignes:

127.0.0.1 localhost
::1 localhost 
 192.168.1.102 localhost 

(L’adresse IPv4 locale de ma machine est 192.168.1.102 . Vous pouvez vérifier le vôtre avec la commande ipconfig.)

(Je suis tombé sur des pages Web expliquant comment configurer un adaptateur de réseau virtuel pour Windows qui gère le bouclage, par exemple Configuration d’un adaptateur de bouclage Microsoft (d’Oracle Distilled) , mais je n’ai pas eu le temps de le comprendre et de le voir. si c'est une solution viable à tout cela aussi.)

4
aenw

Ceci est pour référence. Mais je suppose que cela pourrait correspondre à votre cas.

Le port 8700 est un port très spécial pour les DDM; il n'y a aucun moyen de changer le port . Le port 8700 est utilisé pour l'agrégation des paquets provenant de chaque machine virtuelle Dalvik.

Il y aura deux cas;

cas 1) Si vous définissez "Port du débogueur local de base" (dans la boîte de dialogue Préférences Eclipse ddms) sur 8700, le message d'erreur suivant s'affiche: "Impossible d'établir une liaison avec le débogueur local 8700", à chaque fois que le système est lancé. Mais pas de problème, car si ddms ne pouvait pas lier 8700 à la première machine virtuelle, il serait connecté à 8701, puis 8702 et ainsi de suite.

cas 2) Même si vous définissez "Port du débogueur de base local" (dans la boîte de dialogue Préférences Eclipse ddms) sur 8600, le message d'erreur suivant peut s'afficher: "Impossible d'établir une liaison avec le débogueur local 8700", dans certains cas. En effet, si votre ordinateur dispose de plus de 100 ordinateurs virtuels Dalvik, le port attribué à chaque VM à partir du port 8600 peut atteindre un port à 8700. Mais, aucun problème ne se produit comme dans le cas 1).

Ainsi, si vous ne voulez vraiment pas voir l'erreur, vous devez définir le "Port du débogueur de base local" dans la boîte de dialogue des préférences Eclipse ddms sur 8701 ou une version ultérieure.

Les ddms autonomes ou les moniteurs Android utilisent différents fichiers de paramétrage d’Eclipse, ils ne risquent donc pas de poser ce type de problème.

~

2
Taehoon Kee

Même problème, différents numéros de port dans la sortie de la console (où je lance ddms) ont attiré mon attention.

Puis, dans documentation , j’ai appris que 8600 est le numéro de port de base par défaut. Chaque nouveau processus utilise le prochain port disponible (8601,8602, ...). De plus, 8700 est le numéro de port actif par défaut (indiquant le processus actuellement sélectionné dans le dbms).

Voici les étapes à suivre pour déboguer des applications source + Android

  1. Exécuter l'émulateur
  2. Exécuter ddms
  3. Open Eclipse (il peut se plaindre de l’impossibilité de se connecter à 8600. En effet, au démarrage d’Eclipse et si vous avez un plug-in Android, il lance ddms. Étant donné que nous avons déjà un ddms connecté au périphérique, nous la deuxième fois ne fonctionnera pas)
  4. Dans le fichier DDMS, sélectionnez le thread que vous souhaitez déboguer (lorsque vous le sélectionnez, il vous indiquera les ports qu’il utilise ainsi que 8700 (par exemple, "8649/8700"). Cela signifie que vous pouvez utiliser les deux ports pour vous connecter. ce processus
  5. À partir d’Eclipse, à l’aide de la configuration de débogage à distance, connectez-vous à tout processus de votre choix (le plus simple consiste à mettre en évidence le processus dans ddms, puis à vous connecter à 8700).
1
Ege Akpinar

Ce problème de type se produit lorsque vous utilisez un autre VM avec le même numéro de port. Par exemple, vous utilisez Android SDk full bundle que vous avez téléchargé à partir du site Web du développeur Android. Maintenant, vous voulez utiliser Eclipse et branché dans ADT, SDK. Il y a une forte probabilité que ce type d'erreur se produise. Cela m'est arrivé Pour surmonter ces difficultés, vous pouvez faire:
Window-Preferences-Android- Choisissez DDMS- Modifier le port du débogueur local de base (utilisez 8601 au lieu de 8600).
Cela peut fonctionner. Merci

1
Omar Faroque Anik

Je l'ai fait en redémarrant mon ordinateur

1
Hari_krish4

Quand j'exécute le moniteur dans $ Android_HOME/tools/monitor sur Ubuntu 16.04, cela indique 

Impossible d'ouvrir le port de débogage sélectionné VM (8700). Assurez-vous de ne pas avoir une autre instance de DDMS ou du plugin Eclipse en cours d'exécution. Si utilisé par autre chose, choisissez un nouveau numéro de port dans le fichier préférences.

J'ai essayé de faire ce qui suit:

Sous Fenêtre -> Préférences -> Android -> DDMS:

Définissez le port de débogueur local de base sur "8601" Cochez la case "Utiliser ADBHOST" et la valeur doit être 127.0.0.1

Mais il reste la boîte de dialogue.

Puis j'ai fait ce qui suit:

gongzelong@gongzelong:~$ netstat -apn |grep 8700
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:8700          0.0.0.0:*               LISTEN      5044/Java       
gongzelong@gongzelong:~$ kill -9 5044
gongzelong@gongzelong:~$ monitor

En faisant cela, cela a résolu mon problème.

Je ne sais pas pourquoi, mais ça marche pour moi.

0
Francis Bacon

Juste pour être complet: (sur Win 7/Vista), vous devez non seulement vous assurer que

127.0.0.1 localhost

est présent dans 

C:\WINDOWS\system32\drivers\etc

vous devez également commenter tous vos autres hôtes virtuels locaux en résolvant de 127.0.0.1. C’est très probablement le cas si vous développez des contenus Web sur le même ordinateur et que vous le configurez plus tôt pour que différents noms d’hôtes soient renvoyés en boucle au niveau local.

0
plesatejvlk

J'ai résolu le problème en fermant UNIQUEMENT le studio Android pour que l'Eclipse puisse obtenir le DDM

0
chefish