No se pudo abrir el puerto de depuración de VM seleccionado (8700)


Estoy tratando de depurar la fuente de Android usando Eclipse siguiendo las instrucciones que se encuentran en:

Http://source.android.com/using-eclipse

He descargado la fuente, y lo conseguí para construir. Sigo las instrucciones en el enlace anterior y todo está bien hasta que ejecute el comando ddms. En este punto, si Eclipse se está ejecutando, obtengo el error 'No se pudo abrir el puerto de depuración de VM seleccionado (8700)'. Si cierro Eclipse, entonces ddms se ejecuta sin problema, y puedo el procesos en el emulador. Sin embargo, si ahora abro Eclipse, obtengo el mismo error.

En cualquier caso, no importa lo que haga, si intento depurar de forma remota, siempre falla con 'Failed to connect to remote VM'.

¿Alguna idea?

Gracias

Author: TT--, 2010-05-10

12 answers

Parece que tienes dos problemas:

  1. Usted está tratando de ejecutar DDMS dos veces. No es necesario ejecutar la versión independiente de DDMS ya que hay una versión integrada en Eclipse como parte del complemento de Android. Si cambia a la perspectiva DDMS en Eclipse, estoy seguro de que encontrará que todas las mismas características están disponibles.

  2. No le ha dicho a DDMS qué máquina virtual desea depurar en localhost: 8700. Antes de intentar establecer su conexión de depuración remota, debe ir a la perspectiva DDMS y hacer clic en el system_process (o cualquier proceso que desee depurar).

 19
Author: Tim Kryger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-10 06:23:23

El archivo Host de Windows que está en mal estado está en C:\WINDOWS\system32\drivers\etc, y debe contener esta línea:

127.0.0.1 localhost

Si eso no funciona, intente realizar los siguientes cambios en Eclipse.

En Ventana - > Preferencias -> Android - > DDMS:

  • Establecer el puerto base del depurador local a"8601"
  • Marque la casilla que dice "Use ADBHOST" y el valor debe ser 127.0.0.1
 16
Author: Colin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-21 19:04:31

Lo resolví terminando el proceso "adb.exe " a través del Administrador de tareas y luego recargar el SDK a través de Windows - > Preferencia..Estoy ejecutando Eclipse Indigo en Win 7 de 64 bits.

 7
Author: Pallav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-26 18:53:52

Yo también estaba teniendo ese problema (Windows 7), a pesar de que mi archivo /Windows/system32/drivers/etc/hosts ya tenía 127.0.0.1 localhost en él.

Intenté cambiar la información y el puerto de ADBHOST en las preferencias de eclipse, pero eso no hizo nada.

netstat -b muestra '127.0.0.1 'como la dirección de origen para adb y el emulador, pero siempre enumera el nombre de host de mi máquina como la' dirección extranjera.'En una corazonada, intenté depurar con mi máquina no conectada a ninguna red (sin WiFi, nada enchufado)... ¡y funcionó! (DDMS fue capaz de conectarse a la VM en el dispositivo emulado y yo era capaz de depurar muy bien.)

Creo que los mensajes enviados por DDMS y/o adb no se quedan en mi máquina local (se envían a mi enrutador local). (Es solo una suposición; no se como probar concluyentemente eso. IOW, loopback no estaba funcionando como debería.

Dado que ya tenía 127.0.0.1 en mis hosts locales, agregué la dirección de subred local de mi máquina a mis hosts archivo, adivinando que DDMS/adb podría estar usando esa dirección (vs 127.0.0.1). Eso parecía resolver el problema para mí.

Así que ahora mi archivo hosts tiene estas líneas:

127.0.0.1       localhost
::1             localhost
192.168.1.102       localhost

(La dirección IPv4 local de mi máquina es 192.168.1.102 . Puede comprobar el suyo con el comando ipconfig.)

(Me encontré con algunas páginas web que cómo configurar un adaptador de red virtual para Windows que maneja loopback, por ejemplo, Configurar un Adaptador de Loopback de Microsoft (de Oracle Destilado), pero no he tenido tiempo de tomar eso y ver si eso es una solución viable a todo esto, también.)

 4
Author: aenw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-13 01:56:31

Lo resolví abriendo el administrador de tareas de Windows y cerrando el proceso "adb.exe". A continuación, cierre eclipse y vuelva a abrirlo. Se iniciará correctamente sin ningún error.

 4
Author: sid_09,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-06 08:47:18

Esto es para referencia. Pero supongo que esto podría coincidir con tu caso.

El puerto 8700 es un puerto muy especial para ddms; no hay forma de cambiar el puerto. El puerto 8700 se utiliza para agregar el paquete de cada VM Dalvik.

Habrá dos casos;

Caso 1) Si establece "Puerto base del depurador local"(en el diálogo de preferencias de ddms de Eclipse) en 8700, verá un error: "No se puede vincular al 8700 local para depurador", cada vez que se inicie ddms. Pero no hay problema, porque si ddms no podría unirse 8700 a la primera VM, luego se conectará a 8701, y luego a 8702 y así sucesivamente.

Caso 2) Incluso si establece "Puerto base del depurador local"(en el diálogo de preferencias de Eclipse ddms) a 8600, puede ver el error - "No se puede vincular al 8700 local para depurador", en algunos casos. Porque, si su dispositivo tiene más de o igual a 100 VM dalvik, la asignación de puertos a cada VM a partir del puerto 8600 puede llegar al puerto 8700. Pero, ningún problema ocurre igual que en el caso 1).

Entonces, si realmente no quieres ver el error, tiene que establecer el"Puerto base del depurador local" en el diálogo de preferencias de Eclipse ddms a 8701 o superior.

Ddms independiente o android monitor utiliza un archivo de configuración diferente de Eclipse, por lo que puede no causar este tipo de problemas.

~

 2
Author: Taehoon Kee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-30 02:23:10

Tenía el mismo problema, diferentes números de puerto en la salida de la consola (donde lanzo ddms) me llamaron la atención

Luego de la documentación , aprendí que 8600 es el número de puerto base predeterminado. Cada nuevo proceso utiliza el siguiente puerto disponible (8601,8602,...). Además, 8700 es el número de puerto activo predeterminado (que indica el proceso seleccionado actualmente en el dbms)

Estos son los pasos para depurar Android source+aplicaciones

  1. Ejecutar emulador
  2. Ejecutar ddms
  3. Open Eclipse (Puede quejarse de no poder conectarse a 8600. Esto se debe a que, cuando Eclipse se inicia y si tiene un complemento de Android, arranca ddms. Dado que ya tenemos un ddms conectado al dispositivo, intentar conectarse por segunda vez no funcionará)
  4. En el ddms, elija un hilo que desea depurar (cuando lo resalta, le mostrará los puertos que está utilizando, así como 8700 (por ejemplo, "8649 / 8700"). Esto significa que puede usar ambos puertos para conectarse a este proceso
  5. Desde eclipse, usando la configuración de depuración remota, conéctese a cualquier proceso que desee (lo más fácil es resaltar el proceso desde ddms y luego conectarse al 8700)
 1
Author: Ege Akpinar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-29 17:12:09

Este problema de tipo se produce cuando se utiliza otra máquina virtual con el mismo número de puerto. Como ejemplo, está utilizando el paquete completo del SDk de Android que ha descargado del sitio web del desarrollador de Android. Ahora desea utilizar Eclipse y conectado ADT, SDK. Hay una alta probabilidad de que ocurra este tipo de error. Me pasó a mí. Para superar estas dificultades se puede hacer :
Window-Preferences-Android-Choose DDMS-Change base local debugger port (use 8601 en lugar de 8600).
Se puede funcionar. Gracias

 1
Author: Omar Faroque Anik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-24 00:18:31

Lo hice reiniciando mi computadora

 1
Author: Hari_krish4,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-05 11:38:42

Solo para completar: (en win 7 / Vista) no solo tienes que asegurarte de que line

127.0.0.1 localhost

Está presente en

C:\WINDOWS\system32\drivers\etc

También necesita comentar todos sus otros hosts virtuales locales resolviendo desde 127.0.0.1. Este es probablemente el caso si está desarrollando material web en la misma máquina y lo configuró antes para diferentes nombres de host que se reproducen en local.

 0
Author: plesatejvlk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 08:41:29

Resolví el problema SOLO cerrando android studio para que el eclipse pueda obtener ddms

 0
Author: chefish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-14 08:58:04

Cuando ejecuto monitor en ANDRO ANDROID_HOME / tools / monitor en Ubuntu 16.04, muestra

No se pudo abrir el puerto de depuración de VM seleccionado (8700). Asegúrese de que no tener otra instancia de DDMS o del plugin eclipse en ejecución. Si está siendo utilizado por otra cosa, elija un nuevo número de puerto en el preferencia.

Traté de hacer lo siguiente:

En Ventana - > Preferencias - > Android - > DDMS:

Establecer el puerto base del depurador local a "8601" Marque la casilla que dice "Usar ADBHOST " y el valor debe ser 127.0.0.1

Pero todavía aparece el cuadro de diálogo.

Entonces hice lo siguiente:

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

Al hacer esto, resolvió mi problema.

No sé por qué, pero funciona para mí.

 0
Author: Francis Bacon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-11 02:56:00