Dispositivo Android ADB sin conexión, no puede emitir comandos

329

Ya no puedo conectarme a mi dispositivo usando ADB a través de la línea de comando o en Eclipse .

Ejecutando el comando

adb devices

devuelve el nombre del dispositivo, pero dice que está fuera de línea.

Cosas que he intentado.

  1. Modo de depuración de Android activado
  2. Reinstaló el controlador USB de Google
  3. Restaurado el sistema operativo a una copia de seguridad que funcionaba anteriormente ( CyanogenMod )
  4. Intercambió el cable USB
  5. Reinició el teléfono / computadora varias veces
  6. Actualizado el SDK de Android

Realmente no tengo idea de lo que está pasando. Cualquier otra cosa que creas que puedo probar, soy todo oídos.

Para ser claros, si tiene este mismo problema, el problema probablemente sea un SDK desactualizado. A partir de 4.2.2 hay una función de seguridad que requiere que confirme la huella digital RSA del dispositivo conectado. ¡Abre el administrador de SDK y actualiza las herramientas! Luego reiniciar.

Brian
fuente
22
intente con otro puerto usb.
jayellos
solo otro puerto es usb3
Brian
3
También me encontré con este tipo de problema. Lo que hice fue, * emitir comando adb kill-server, adb start-server. * intente con otro puerto USB, principalmente funcionará en la parte posterior de la PC, * reinicie el dispositivo, * reinicie eclipse, * reinicie la computadora, * cambie el cable USB, algunos cables USB fallarán (baja calidad). Por último, si el problema no se resuelve, vuelva a instalar el controlador USB del dispositivo.
jayellos
3
Me pasó lo mismo. Para mi caso, simplemente deshabilito la opción Desarrollador y luego vuelvo a habilitarla. Eso es.
Kyaw Nyi gana

Respuestas:

139

Acabo de tener el mismo problema hoy después de que mi Nexus 7 y Galaxy Nexus se actualizaron a Android 4.2.2.

Lo que me solucionó fue actualizar las herramientas de la plataforma SDK a r16.0.1. Para mí, esta versión no se mostraba en mi SDK Manager, por lo que la bajé de http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip directamente.

Luego debe cambiar el nombre del platform-toolsdirectorio y descomprimirlo android-sdk-windows/platform-tools. Usando el SDK Manager, también había actualizado a las últimas herramientas sdk antes de esto.

Si todo su Eclipse y ADT son antiguos, es posible que deba actualizarlos también, pero no fue necesario.

Nota: es posible que deba ejecutar SDK Manager dos veces (una vez para actualizarse) antes de ver los últimos paquetes.

Peter Mortensen
fuente
1
Tengo r17 pero tengo el mismo problema. ¿Revertir a r16.0.1 ayuda?
Alexander Suraphel
@ Espartaco No creo, así que creo que el problema para ti puede estar ahora en otro lado.
hack_on
Solucionado, problema causado por la plataforma faltante del SDK de Android
Tai Dao
Funcionó exactamente en el orden descrito. El último paso es permitirlo en el teléfono.
vlad
24
Simplemente reinicie el teléfono o dispositivo y disfrute, no es necesario reiniciar adb nada más.
UMAR
135

Intenta correr adb devicesdespués de correr adb kill-server. La pregunta de seguridad aparece después de eso. Trabajó para mi.

Thomas Economous
fuente
Funciona si sus controladores ya están actualizados y aún tienen problemas. En otros casos también, puede funcionar, creo.
kAmol
Asegúrese de desconectar cualquier otra máquina del dispositivo. En mi caso, el host de mi máquina virtual todavía estaba conectado a través de tcpip y mi invitado aún podía conectarse con éxito, pero estaría desconectado. Para obtener el símbolo del RSA, que tenía que ejecutar el adb kill-servercomando en mi host antes de conectar en mi invitado a través adb connect 192.x.x.x.
adb start-server después de eso
madz
En general ese es el truco. Aceptar respuesta es para caso especial.
Ratul
Debo haber perdido el 'permitir depuración USB de xx: xx: xx' en el teléfono. Reiniciar el servidor y volver a conectar el USB volvió a aparecer.
Dan Bolser
77

También parece ocurrir con frecuencia cuando se conecta al dispositivo usando el modo Wi-Fi (en Android Studio o en la consola ejecutando, adb tcpip 5555por ejemplo).

Arreglar:

  1. Desconecte la conexión USB o apague el Wi-Fi del dispositivo si está conectado a través de Wi-Fi.
  2. Cierre Android Studio / Eclipse / otro IDE.
  3. Ejecute adb kill-serverpara asegurarse de que adb no se esté ejecutando.
  4. Reinicia tu dispositivo Android.
  5. Después de reiniciar su dispositivo, conéctelo a través de USB y ejecútelo adb devices. Esto debería iniciar el demonio ADB. Su dispositivo ahora debería estar en línea nuevamente.
Aaron
fuente
2
¡El paso 3 es probablemente la solución clave aquí! cierre su interfaz de línea de comando y elimine el proceso si aún se está ejecutando e ¡Intente nuevamente!
Reubenjohn
Esto funciona para mí (Galaxy Tab GT P7500 con Windows 7)
Sarvan
Me funcionó con Android 8.0 y Windows 10
andoni90
Intenté adb kill-serversin reiniciar el dispositivo Android y no funcionó. Cuando repito estos pasos y reinicio el dispositivo como se menciona en la sección 4, funcionó.
E235
62

Llegué al mismo problema en un Nexus 7 que ejecuta la actualización 4.2.2 OTA. Estoy casi seguro de que tuve una conexión ADB a través de USB y Wi-Fi después de la actualización hasta que dejó de funcionar. Para solucionarlo, actualicé mi SDK usando:

android update sdk --no-ui

Ahora mis herramientas de desarrollo son:

  • SDK rev 16.0.2
  • SDK tools rev 21.1
  • SDK API 17, rev. 2
dturvene
fuente
1
"'android' no se reconoce como un comando interno o externo, programa operativo o archivo por lotes". - también hice un "dir android.exe / s" desde la raíz de mi disco C: no encontré nada - ¿estás usando Linux o tienes algunos bits especiales que los usuarios de Windows no tenemos?
BrainSlugs83
Sí, yo uso Linux. Android es un script de shell bajo ./sdk/tools/ que inicia la aplicación Java SDK Manager de Android. Debe haber un script comparable en el tarball del SDK de Windows.
dturvene
77
el comando dado se puede usar en Windows siempre que se haga desde el directorio path \ to \ android-sdk \ tools \
gadget del
44
En Windows 7, para emitir el comando desde el directorio ... \ android-sdk \ tools \ y hacer que funcione, ejecute la ventana de comandos "Como administrador".
John Jorsett
Me funcionó con Nexus 10 y Galaxy Nexus. Estoy usando Windows XP SP3. Traté de cambiar el puerto usb, reinicios, etx ... nada ayudó, pero esta respuesta. Casi iba a reinstalar XP, ¡gracias!
Fer
44

No puedo enfatizar que cambiar los puertos USB es clave. A menudo, los puertos USB del panel frontal pueden estar defectuosos.

Mike Weir
fuente
55
A mí también me funcionó. El Nexus 10 a veces parece
consumir
¡Guau, después de 1/2 hora de callejones sin salida, esto resulta que este es un problema de alimentación USB! ¡Gracias!
bigjosh
A veces no es un puerto defectuoso. En mi caso, tuve el USB conectado durante el arranque de Windows y no cargó los controladores ADB correctamente. Simplemente desconectado y enchufado nuevamente en el mismo puerto. Windows se pregunta ...
Ricardo BRGWeb
1
A veces, los puertos de conmutación funcionan. A veces es una cuestión de soporte USB2 vs USB3 de los diversos puertos + cable + combinaciones de dispositivos. A veces es útil cambiar de puertos frontales a posteriores, o con o sin el indicador "SS" (USB3). Intentar con un cable diferente a veces ayuda.
Jon Adams
8 horas desperdiciadas para mí. Funciona en USB 3.0 pero no en USB 2.0 por alguna razón (al menos para mí). Nunca tuve ese problema hasta ahora y de repente tengo que usar 3.0. Lo cual está desperdiciando uno de mis puertos 3.0 ahora.
Ryan
39

Para cualquiera que se pregunte sobre 4.2.2, hay una pregunta de seguridad que aparece en el teléfono solicitando la verificación RSA con la PC. Asegúrese de que sus herramientas estén actualizadas Y permita el acceso a la PC al verificar la pregunta de seguridad en los dispositivos en cuestión. Esto me lo arregló.

Y como siempre, verifique que tenga habilitada la depuración en las opciones del desarrollador;)

Eric Fossum
fuente
77
Funcionó para mí una vez que revoqué las autorizaciones de depuración usb. Luego deshabilitó y volvió a habilitar la depuración usb. Apareció el mensaje "permitir esta computadora", y BAM, se mostró como dispositivo en lugar de fuera de línea.
CrazyPenguin
21

Múltiples archivos adb.exe?

Mi problema se resolvió cuando eliminé una copia de OLD adb.exe de C: / Windows / . No sé cómo llegó una copia de adb.exe a C: \ Windows \?

Cuando inicio adb.exe desde android-sdk / platform-tools / no tuve ningún problema con la detección.

usuario1269737
fuente
Esto es lo que pasó conmigo. Creo que algo que descargué para instalar una ROM hace dos años fue el culpable.
gengkev
Mi Windows 8 tenía el mismo problema y cambiar el nombre c:\windows\adb.exea algo más ( adb.old.exe) solucionó el problema. Ni siquiera necesité reiniciar o abrir / cerrar la línea de comando. Simplemente funciona Escribí adb devicesjusto después de cambiar el nombre del viejo adb.exey luego mi Nexus 7 me preguntó si quería autorizar esta computadora. Dije que sí y ahora, cuando emito en adb deviceslugar de "sin conexión", dice "dispositivo".
AlexStack
1
Gracias, este funciona! Lo mismo me pasó a mí también, creo que adb.exe se copió a C: \ Windows cuando instalamos el software del controlador que vino con el dispositivo.
thinzar00
Sin embargo, cómo llegó allí: / Quiero saber
Daniel Cheung, el
1
@DanielCheung Para mí fue cuando instalé los programas KingORoot y / o KingRoot para PC. Supongo que instalan una versión ellos mismos porque no confían en que el usuario tenga instalado el SDK de Android. Y sí, eliminar la versión anterior (1.0.26) que crea del directorio de Windows solucionó el problema "fuera de línea" para mí. :)
Venryx
20

Pruebe apagando la depuración usb una vez y luego habilitándolo nuevamente y luego conecte su dispositivo con el sistema: enlace

usuario3492435
fuente
2
Este es ciertamente el método más simple, seguro y rápido. Usé muchas variaciones de todos los métodos en este hilo. Este es el único que funciona cada vez. Son solo tres toques en el dispositivo Android y el problema desapareció.
LD James
18

Estaba teniendo este problema y ninguna de las otras respuestas me ayudó. Lo que era necesario, después de actualizar el SDK e instalar la API para 4.2.2, se estaba ejecutando:

android update adb

Otro problema que tenía era que estaba tratando de conectar ADB a través de Wi-Fi, que es mi única opción porque los puertos USB de mi Mac son realmente complicados. Desafortunadamente, ADB a través de Wi-Fi no muestra la pregunta de seguridad en 4.2.2, por lo que debe encontrar un cable USB que funcione y conectarse a través de USB al menos una vez para aceptar la pregunta de seguridad, pero después de hacerlo una vez , puedes conectarte a través de Wi-Fi.

escarcha
fuente
Esto lo hizo por mi. Gracias. Estaba golpeando mi cabeza contra una pared desde que actualicé mi Nexus 7.
Jason Southwell
Intenté todo en esta página y en algunos otros sitios que Google apareció y mi teléfono HTC con Android 4.0.3 todavía estaba en la lista como desconectado. Finalmente reinicié el teléfono y luego los dispositivos adb dijeron que estaba en línea. Hombre, desearía haber pensado en eso antes.
John Jorsett
Recibí este error: dispositivo fuera de línea hasta que encontré tu comentario sobre wifi; tan pronto como apagué mi teléfono, funcionó. ¡Gracias!
amurrell
17

Si su dispositivo normalmente se conecta a través de USB, pero de repente deja de funcionar, especialmente después de que el cable USB se haya desconectado y vuelto a conectar, intente los siguientes pasos no invasivos antes de hacer algunas de las cosas más drásticas mencionadas en las otras respuestas:

adb kill-server
adb start-server
adb devices

Si su dispositivo aparece en la lista con 'dispositivo' al lado, está de vuelta en el negocio.

Si su dispositivo aparece en la lista 'fuera de línea' al lado, intente reiniciar el dispositivo. El demonio ADB en el dispositivo ocasionalmente se cuelga. Lo noté más cuando desconecté el cable mientras LogCat se está ejecutando y después de volver a conectarme a través de Wi-Fi o Ethernet.

Si su dispositivo no está en la lista, entonces debe probar las soluciones en las otras respuestas, comenzando con un puerto y cable USB diferente. Esos cables baratos pueden ir mal.

scottt
fuente
Eso ayudó a resolver mi problema (el emulador de Android aparecía como 'fuera de línea' pero después de reiniciar el servidor como se describió, estaba nuevamente en modo 'dispositivo').
Greg0ry
1
Después de muchas horas de tratar de encontrar la razón por la cual adb ya no funciona, ¡de hecho era el cable!
Martin L.
Me ha mordido un cable defectuoso más de una vez. Por lo general, los cables defectuosos aún cargarían bien el dispositivo, por lo que yo también he perdido mucho tiempo antes de probar otros diferentes.
scottt
Oh, Dios mío, he probado todas las soluciones, pero la más simple, reiniciar EL TELÉFONO, no me vino a la mente. Eso resolvió mi problema.
kibin
Tuve que usar un cable más corto, ¡el que uso para cargar mi teléfono era demasiado largo!
Rick Mortensen
12

Asegúrese de usar adbdesde su platform-toolscarpeta, después de actualizar las herramientas del SDK.

Finalmente conseguí este trabajo después de que me di cuenta de que estaba usando una versión obsoleta del ADB copiado /usr/bin.

elyess.abouda
fuente
¿Dónde está este usr / bin?
AntWo
8

En algún momento esto puede suceder debido a un error del servidor adb (creo). Siempre dice

"device-name is offline" from adb devices command.

Solo mata el servidor y comienza de nuevo. Funcionó para mi.

"adb kill-server"
"adb start-server"
James
fuente
7

Utilicé adb connect <device_ip>y ninguna de las otras soluciones funcionó porque mi problema estaba en el otro lado. En el dispositivo que necesitaba stop adbdy reiniciarlo start adbd. El dispositivo ahora está "en línea" nuevamente.

PiTheNumber
fuente
1
Tenía un Amazon Fire TV Stick que tenía este problema al conectarse a través de Wifi. Alternar ADB apagado y encendido de nuevo, adb kill-server, adb start-server, a continuación, adb connect <device_ip>como se sugirió anteriormente trabajó para mí.
chenware
6

Me encontré con el mismo problema que esto me solucionó. conecte su teléfono a través de usb primero y luego asegúrese de verificar su IP móvil que está en configuración >> sobre teléfono >> estado ejecute los siguientes comandos.


adb kill-server
adb start-server
adb tcpip 5555 //it resets port so put port you want to connect
adb connect 192.168.1.30:5555 //ip:port of your mobile to connect
adb devices //you will be connected over wifi

Saqy G
fuente
adb tcpip 5555 no restablece el puerto, solo establece un puerto predeterminado para el dispositivo actual y debe tener lugar después de conectarse a un dispositivo y la próxima vez que se conecte a un dispositivo a través de una dirección IP, incluso en una red wifi, no necesita puerto
Ehsan sarshar
5

Intenté dturvene y todas las demás soluciones, pero no funcionaron. Necesitaba un paso más.

Ejecute estos comandos

  1. adb kill-server
  2. android update sdk --no-ui
  3. adb start-server

Para verificar que funcionó, ejecute 'adb version' antes y después de los comandos y asegúrese de que sea el último. La razón del adb kill-servercomando es que lo más probable es que se esté ejecutando, y no se puede actualizar mientras se está ejecutando, por lo que primero debe eliminarlo.

usuario850688
fuente
5

Para mí nada funcionó. Pasé unas 12 horas buscando constantemente en Internet y probando las soluciones que funcionaban para otras personas que tenían problemas similares.

Finalmente terminé haciendo las cosas de ADB a través de la LAN. La configuración estaba justo al lado de la configuración de Depuración de USB y en ADB se puede activar con "adb connect [IPADDRESS]: [PORT]". El puerto era 5555 en mi teléfono.

Espero que esto ayude a alguien a volver al trabajo en lugar de tener que lidiar con inconvenientes constantes.

Sandro
fuente
5

Este enfoque funcionó para mí:

  1. adb kill-server
  2. Deshabilite el dispositivo sin conexión en el Administrador de dispositivos (ver imagen a continuación)
  3. Habilite el dispositivo en el Administrador de dispositivos
  4. adb start-server

Administrador de dispositivos, menú "Ver", "Dispositivos por conexión":

ingrese la descripción de la imagen aquí

kol
fuente
4

Inicialmente encontré el mismo problema (con ADB / fastboot descargado de GitHub ), pero finalmente lo puse a funcionar. Lo que funcionó para mí:

  • Android SDK. Versión ADB: 1.0.31
  • Usando el puerto USB frontal ( MacBook Pro 15 ")
  • Reiniciar el teléfono después de habilitar las opciones de desarrollo y la depuración de USB (hazlo 7 veces toca configuración> sobre teléfono> compilación).
  • Elimine el servidor adb en caso de que no aparezca ningún dispositivo (adb kill-server)
  • El icono de depuración debe estar visible en el teléfono.
  • Asegúrese de desbloquear la pantalla de bloqueo para verificar el diálogo de confirmación de huellas digitales RSA.
TBeijen
fuente
4

Instaló la última versión de Android SDK.
Cambió el puerto USB del dispositivo.
Cambiado de MTP -> Solo carga -> MTP.
Funcionó.

hack3r
fuente
1
Para mí, el cambio de 'Transferencia de archivos multimedia' a 'Transferencia de imágenes' (que es PTP / MTP) solucionó el problema (después de probar todas las otras soluciones, incluida la actualización de Android SDK, utilizando diferentes cables, reiniciando ADB, ciclando el modo desarrollador, desconectando / volver a conectar el USB a diferentes puertos, etc. Molesto, esta respuesta tenía 0 puntos y estaba en la segunda página cuando estaba buscando una respuesta, así que voté para tratar de ayudar a otros en el futuro.
Steven Craft
3

Si previamente autorizó la huella digital RSA de su PC y probó adb kill-server, etc. sin suerte, su problema podría ser simplemente que está intentando conectarse mientras está bloqueado. Intente presionar el botón de pantalla e ingresar su patrón; esto me lo arregló.

usuario1405990
fuente
3

La mejor manera que pensé es deshabilitando y luego habilitando el dispositivo desde el Administrador de dispositivos y ejecutando el comando de dispositivos adb.

  1. Vaya a la pestaña de inicio y haga clic derecho en Computadora
  2. En el menú desplegable, haga clic en Administrar
  3. Desde la pantalla de administración de la computadora, haga clic en Administrador de dispositivos
  4. En el panel derecho, expanda dispositivos portátiles para encontrar su dispositivo
  5. Haga clic derecho en el nombre de su dispositivo y haga clic en desactivar en el menú desplegable
  6. Cuando se deshabilita, repita el paso 5 excepto para habilitarlo.

El dispositivo volverá a estar en línea. Es mas rapido.

Nishant
fuente
3

Una posibilidad más para las personas con conexiones ADB débiles, y si están en una Mac y tienen Android File Transfer instalado: descubrí que la transferencia de archivos estaba interfiriendo con mi conexión ADB, haciendo que dejara de funcionar de manera intermitente.

Matar el Android File Transfer Agent.appproceso que busca dispositivos compatibles (por ejemplo, el Nexus 7) que se conecta a la Mac me cura las fallas.

Peter Mortensen
fuente
1
Esto fue lo que me causó el problema en OS X, ¡gracias!
adaam
3

Como nadie dio una respuesta para mi situación: es posible que no tenga acceso al archivo ~ / .android / adbkey. Si inicialmente inicia adb con sudo, generará un par de claves públicas, escribiendo esto en ~ / .android / adbkey.pub y ~ / android / adbkey. Por supuesto, la clave privada es chmod 600, solo legible para root en su directorio de inicio. Posteriormente, el inicio de adb como usuario normal no dará acceso al archivo de clave privada, que a su vez fallará en silencio con el "dispositivo fuera de línea".

usuario3901558
fuente
3

Lo que me resolvió en Mac fue actualizar adba la última versión (1.0.32). Ahora puedo ver mi dispositivo en línea nuevamente

Andrea Gherardi
fuente
3

La razón por la cual un dispositivo se informa como fuera de línea es que adb no puede conectarse a él. El ejecutable de Adb desde el entorno de desarrollo crea una conexión (socket) con el dispositivo bajo control. El dispositivo tiene un servicio (daemon) que escucha esta comunicación. El demonio se llama adbd (como en adbdaemon). Cuando uno habilita adb en un dispositivo, de hecho, inicia este demonio, por lo que se pueden establecer comunicaciones con el dispositivo.

Cuando adb informa que el dispositivo está fuera de línea es porque el daemon ya no se está ejecutando o está en un estado que no aceptará conexiones. En la mayoría de los casos, esto sucede si la red se cae en una conexión activa (red).

La única forma de solucionar esto fue reiniciando el dispositivo. Se puede llegar a corregir el estado fuera de línea por muchos otros medios, pero reiniciar el dispositivo siempre funciona.

ricki
fuente
3

Cuando me enfrento a los mismos problemas que hacer lo siguiente:

  1. Reinicie adb emitiendo adb kill-server seguido de adb start-server en un símbolo del sistema
  2. Deshabilite y vuelva a habilitar la depuración de USB en el teléfono
  3. Reiniciar el teléfono si aún no funciona. El 99% de mis problemas se han resuelto con estos pasos.
Chandrama Prasad
fuente
4. Intente enchufar un cable a otra ranura USB. Eso me ayudó en mi caso.
Dredkin
2

Es solo porque su computadora no tiene el controlador correcto. Para arreglar eso:

  1. Descargue y extraiga el SDK de Android

  2. Vaya al Administrador de dispositivos (haga clic con el botón derecho en Computadora -> Propiedades -> Administrador de dispositivos

  3. En el panel derecho, expanda dispositivos portátiles para encontrar su dispositivo

  4. Haga clic derecho en el nombre de su dispositivo y haga clic en Actualizar software de controlador

  5. Buscar en mi computadora el software del controlador

  6. Busque la carpeta de su SDK de Android en el paso 1.

  7. Siguiente y listo

usuario2647983
fuente
Lo mismo para mí en Windows 7 y con Nexus 7. Dejó de funcionar, eliminé el controlador, lo instalé nuevamente y funcionó
Michał K
En mi caso, ¡es mi controlador USB 3.0 el que no funciona! ¡No conductor para el teléfono!
VCD
2

Intente reiniciar el servidor adb de la siguiente manera:

adb kill-server

adb start-server

También me he encontrado con los mismos problemas que el tuyo. Y reiniciar el servidor adb resolverá este problema.

Berlina
fuente
2

Actualicé muchas veces, hasta que no pude actualizar más, pero nunca recibí un mensaje en mi pantalla; Seguí desconectando el dispositivo.

Mi problema era que estaba ejecutando el comando ADB desde un directorio diferente al que realmente se estaba actualizando.

El directorio actualizado correcto para el ADB exe es:

C:\Program Files (x86)\Android\android-sdk\platform-tools\
Adrian
fuente
2

Reinicia el dispositivo. Intenté todo lo que aparece aquí para que mi teléfono HTC (con Android 4.0.3) funcione, pero adb devicesseguí diciendo que estaba desconectado. Después de reiniciar el teléfono, finalmente estaba en línea. Algunas de las otras sugerencias aquí pueden haber contribuido a que se reconozca el teléfono, pero hacer algunos reinicios en el camino a medida que los esté probando ciertamente no dolerá.

John Jorsett
fuente