Error de Eclipse "El servidor ADB no ACK, no pudo iniciar el demonio"

158

Después de actualizar el SDK, Eclipse muestra este error:

El servidor ADB no ACK, no pudo iniciar el demonio.

Cuando ejecuto una aplicación de Android, me da lo siguiente:

Asegúrese de que adb esté ubicado correctamente en 'D: \ android-sdk-windows \ platform-tools \ adb.exe' y que pueda ejecutarse.

¿Como puedo solucionar este problema?

pengwang
fuente
recientemente instalé el genymotion y después de que comenzó a suceder, la solución fue eliminar el comando adb del terminal manualmente y configurar la ruta adb en las variables de entorno en ubantu apuntando a sdk / platform-tools y luego funcionó.
vikas kumar

Respuestas:

263

Gracias, @jowett , he resuelto mi mismo problema , siguiendo estos pasos.

Paso 1: CTRL + Shift+ Escpara abrir el administrador de tareas, que tiene el proceso adb.exe y finalizar (matar) ese proceso

Paso 2: Ahora, cierre el eclipse, que actualmente se está ejecutando en mi computadora.

Paso 3: Nuevamente, reinicie eclipse y luego resuelva ese problema.


Para aquellos que usan OS X

killall adb

Para quienes usan Windows

adb kill-server

debería hacer el truco.

Horrorgoogle
fuente
40

Encontré el mismo problema, aunque no supe qué causó esto. Lo que sea, encuentro algunas pistas y lo solucioné finalmente.

Cuando abro el SDK y el administrador AVD, pero encuentro que la versión AVD (2.3.3) no es la misma que la versión lib de Android (2.3). Entonces creo un nuevo AVD con 2.3.

Lo arreglé siguiendo estos pasos: 1. Abra el administrador de tareas de Windows y elimine el proceso adb.exe. 2. Cierre eclipse y reinícielo. Entonces funciona.

Espero eso ayude.

jowett
fuente
35

Estos síntomas se producen si está utilizando el emulador Genymotion (en Windows o Linux) al mismo tiempo que Android Studio:

adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *

Genymotion incluye su propia copia de adb, que interfiere con la incluida en el SDK de Android.

Parece que la forma más fácil de arreglarlo es actualizar la configuración de Genymotion para que use el mismo ADB que su SDK de Android:

configuración ADB de genymotion

Simplemente marque la opción "Usar herramientas SDK de Android personalizadas" e ingrese la ubicación deseada.

Dan J
fuente
Funciona para mí después de actualizar Android Studio a 2.1.2.
Noel Bautista
35

ADB a menudo fallará si hay una nueva línea en adb_usb.ini. Elimínelo, reinícielo, y eso a menudo resolverá el problema (al menos para mí de todos modos).

FishGuy876
fuente
mientras intentaba depurar con Kindle Fire quería hacer una entrada en este archivo ~ / .android / adb_usb.ini, pero sin saberlo agregó algunas líneas en blanco adicionales. Ahora lo quitó. Me arregle, gracias.
Thiru
35

Símbolo del sistema (cmd.exe):

netstat -aon | findstr 5037

Encuentre la identificación del proceso de 0.0.0.0:

Ingrese la descripción de la imagen aquí

Asegúrese de que sea adb.exe:

tasklist | findstr 1980

Ingrese la descripción de la imagen aquí

Mata este proceso:

taskkill /f /t /im adb.exe

Ingrese la descripción de la imagen aquí

Haga que ADB vuelva a la normalidad:

Ingrese la descripción de la imagen aquí

Crédito: publicación de blog * El servidor ADB de Android no ACK no pudo iniciar el demonio *

Desaparecido en combate
fuente
Mi lado es tfadb.exe, después de matarlo, funciona, gracias.
BobGao
En mi caso, svchost.exe estaba usando el puerto. Después de matarlo, comenzó con éxito.
ranka47
13

Si está utilizando una aplicación de sincronización para el dispositivo, también podría deberse a que hay otras aplicaciones que usan el mismo 5037puerto. Cierre todos los servicios que se ejecutan en el puerto 5037e intente iniciar ADB.

Para verificar si alguna aplicación está utilizando el puerto 5037, use esto:

netstat -a -n -o |findstr "5037"

Obtenga el PID de la aplicación.

Utilizar Explorador de procesos para encontrar el Proceso y salir de él.

Ahora usa adb start-server o adb get-statepara iniciar / verificar el estado del servidor ADB.

Me enfrenté al problema cuando usé la aplicación Snappea / Wandoujia Sync.

Pradeep Chakravarti Gudipati
fuente
¡Gracias! svchost.exe estaba usando ese puerto por alguna razón de repente.
Jacob L
No sé cuándo se solucionará esto, pero es una lástima que aún no se solucione.
Dejan
8

Causé este problema al ingresar una línea en blanco adicional al final de ~ / .android / adb_usb.ini

(Eliminar la línea en blanco adicional solucionó el problema)

RMN
fuente
Arregle un problema similar eliminando todas las líneas en blanco, no solo la última.
Pavel
2
Tuve el mismo problema porque agregué una línea en blanco al final al ingresar a las líneas de Kindle Fire. Eliminé la línea en blanco y adb se reinició sin problemas. Gracias.
Jerome Mouneyrac
7

Podemos resolver este problema tan fácilmente.

  1. Abra un símbolo del sistema y haga cd <platform-tools directory>
  2. Ejecutar comando adb kill-server
  3. Abra el Administrador de tareas de Windows y verifique si adbaún se está ejecutando. Si es así, solo mataadb.exe
  4. Ejecutar comando adb start-serveren el símbolo del sistema

Ingrese la descripción de la imagen aquí

Manesh Appukuttan
fuente
¡No es necesario reiniciar Eclipse! :)
TWiStErRob
5

He resuelto mi primera pregunta: abrir Eclipse, abrir el SDK Manager y elegir el dispositivo para abrir.

O puede abrir el directorio SDK. Abra el SDK Manager y luego elija el dispositivo para abrir

2: Cierre Eclipse y luego ábralo.

pengwang
fuente
5

Asegúrese de que la depuración de USB en su teléfono esté activada. ADB kill-server y ADB start-server no es el problema.

C:\Documents and Settings\Administrator> adb nodaemon server

 - cannot bind 'tcp:5037'

C:\Documents and Settings\Administrator> netstat -aon | findstr "5037"

 - TCP 127.0.0.1:1130 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:1269 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3088
 - TCP 127.0.0.1:5037 127.0.0.1:1128 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1129 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1270 TIME_WAIT 0

C:\Documents and Settings\Administrator>tasklist -fi "pid eq 3088"

 - Image name PID session name session # memory usage

========================= ====== ================ === ===== ============

 - adb.exe 3088 Console 0 3,816 K

C:\Documents and Settings\Administrator>taskkill /f /pid 3088

 - Success: terminate the PID for the process of 3,088.

C:\Documents and Settings\Administrator>adb start-server

 - daemon not running. starting it now on port 5037 *
 - daemon started successfully *
Albert.Qing
fuente
4

Ya he votado otra respuesta aquí a esta pregunta, pero en caso de que alguien se lo pregunte, no necesita reiniciar Eclipse para que ADB vuelva a funcionar. Simplemente abra un shell y ejecute el comando:

adb start-server

Si no ha configurado la ruta a ADB en las propiedades de su sistema, primero debe ir al directorio en el que existe ADB (en Android \ android-sdk \ platform-tools ... Estoy ejecutando Windows, no lo hago ' No sé cómo la gente mac hace las cosas).

dell116
fuente
2
Eso no importa Me sale el error de la línea de comando también.
IgorGanapolsky
No encontré una manera de hacerlo en Mac. Forzar el abandono de ADB no ayudó, así que tuve que reiniciar toda la computadora. Luego funcionó de nuevo.
Marcel Bro
2

Vaya a sysinternals.com y seleccione TCPVIEW y PROCESS EXPLORER, si aún no los tiene instalados.

Por alguna razón, el demonio ADB finaliza antes de que se complete el intercambio de socket cerrado. Si ejecuta (desde el símbolo del sistema) "NETSTAT -o", verá el socket (generalmente 5037) en estado CLOSE_WAIT y el número del proceso propietario. Process Explorer no mostrará esa ID de proceso (el daemon terminó), y el proceso llamado adb.exe (que abrió el socket) desaparecerá. (Si se encuentra adb.exe, intente eliminar la tarea y ver si las cosas se limpian).

Usando TCPVIEW, ubique el socket colgado. La columna del nombre del proceso mostrará que el proceso asociado no se puede encontrar. Haga clic derecho y seleccione "Cerrar conexión". El socket ahora está cerrado y el demonio adb debería poder iniciarse.

HiTechHiTouch
fuente
Servicial. Además, en el Explorador de procesos, si ve un adb.exe ejecutándose con la columna Ruta que muestra [Error al abrir el proceso], ese puede ser el probable culpable.
Samik R
2

Tuve un problema similar. Matar una instancia existente del proceso ADB desde el Administrador de tareas no funcionó para mí.

Hace solo unos días, había intentado instalar MIPS SDK y ADT-17 antes y Eclipse me dio el error, y no solucioné ese problema.

Entonces, ahora, cuando obtuve este servidor ADB no ACK, no pude iniciar el daemon ... problema, ejecuté 'Buscar actualizaciones' en el elemento del menú Ayuda de Eclipse . No hubo actualizaciones disponibles, pero al menos el error 'El servidor ADB no ACK' desapareció.

Espero que esto pueda ayudar en algunos casos.

Chand51
fuente
1

Tipo ./adb nodaemon server una terminal.

Si vuelve Invalid content in adb_usb.ini, entonces hay un problema con su adb_usb.iniarchivo en el.android carpeta.

Abrir adb_usb.iniy borrar sus contenidos. Luego reinicie el servidor ... funcionó para mí.

aashishdhawan
fuente
1

Verifique la ruta del directorio de Android. No debe contener espacios, etc.

Compruebe también si el complemento se ha configurado correctamente en Eclipse → Preferencias .

En mi caso, hice que todo se verificara varias veces, pero todavía no funcionaba. Estaba a punto de reinstalar todo, pero encontré una respuesta en este sitio (alguna otra publicación).

Verifica tu antivirus. Puede estar bloqueando los puertos adb.exeo programas de emulación, etc. Eso resolvió el problema en mi caso.

usuario1372837
fuente
1

Además de la solución de @Bastet :

En realidad tenemos que matar el proceso usando la dirección 0.0.0.0:0. Es por eso que para la mayoría de las personas que mataban adb.exedesde el Administrador de tareas estaba trabajando (en mi caso no pude verlo incluso en el Administrador de tareas).

Siguiendo los pasos de @Bastet , descubrí que algún otro proceso estaba usando esta dirección. Seguí adelante para matarlo, y me dio ACCESS DENIEDcomo Error.

Entonces, usando el tasklist | findstr ****, descubrí el nombre del proceso y lo eliminé del Administrador de tareas.

A partir de entonces comenzó a funcionar.

En mi caso bas_daemony bas_helperestaba usando esta dirección, ambas corresponden a MOBOROBO .

DeltaCap019
fuente
0

Yo tuve el mismo problema. Pero no hubo ningún proceso adben mi computadora portátil. Acabo de cerrar sesión e iniciar sesión en mi cuenta, y está resuelto ...

ADB podría comenzar desde ventanas CMD después de eso.

Chuck.Zhou
fuente
0

La mejor y más eficiente forma sin reiniciar ningún dispositivo o software es:

Ejecute lo siguiente:

adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe

Y una cosa más ... ADB es una cosa independiente. No puedes hacer nada hasta que quiera que funcione. Hay una forma más que descubrí: deje el dispositivo conectado durante 5-6 minutos y espere. Pronto el dispositivo se conecta e intenta iniciarse.

Veer Shrivastav
fuente
0

Esto no comenzó a suceder hasta que rooteé mi teléfono Samsung Galaxy S III (siguiendo la guía del foro xda-developer).

Sucede de manera bastante aleatoria, pero definitivamente ocurre mientras se ejecuta Eclipse.

Eliminar el proceso adb.exe y reiniciarlo resuelve el problema.

Nathan Perrier
fuente
0

Mire el antivirus o el firewall ... ¿Algo de eso le impide el acceso ... En k7 antivirus apagué el monitor del sistema, y ​​funciona para mí ...

Sha Beer
fuente
-1

Tuve que permitir que adb.exe acceda a mi red en mi firewall.

Terel
fuente
1
Estoy usando este firewall: sphinx-soft.com/de/Vista/order.html Todo lo que hice fue cambiar la regla de adb.exe aallow all
Terel
-1

Matar Eclipse y luego reiniciar no me ayudó. Agregué la herramienta de Android a las variables PATH, inicié el Administrador de tareas y eliminé adb.exe.

Reinicié Eclipse, y luego funcionó.

Kristy Welsh
fuente