Dispositivo Android ADB offline, não é possível emitir comandos


329

Não consigo mais me conectar ao meu dispositivo usando o ADB pela linha de comando ou no Eclipse .

Executando o comando

adb devices

retorna o nome do dispositivo, mas diz que está offline.

Coisas que eu tentei.

  1. Modo de depuração alternado do Android
  2. Reinstalou o driver USB do Google
  3. Restaurou o sistema operacional para um backup que estava funcionando anteriormente ( CyanogenMod )
  4. Trocou o cabo USB
  5. Reinicie o telefone / computador várias vezes
  6. Atualizado o SDK do Android

Eu realmente não tenho idéia do que está acontecendo. Qualquer outra coisa que você pense que eu possa tentar, sou todo ouvidos.

Para deixar claro, se você está tendo esse mesmo problema, o problema provavelmente é um SDK desatualizado. A partir do 4.2.2, há um recurso de segurança que requer que você confirme a impressão digital RSA do dispositivo de conexão. Abra o gerenciador do SDK e atualize as ferramentas! Então reinicie.


22
tente outra porta usb.
Jayellos

única outra porta é usb3
Brian

3
Eu também encontrei esse tipo de problema. O que fiz foi * emitir o comando adb kill-server, adb start-server. * tente outra porta USB, principalmente funcionará na parte de trás do PC., * reinicie o dispositivo, * reinicie o eclipse, * reinicie o computador, * troque o cabo USB, algum cabo USB falhará (baixa qualidade). Por fim, se o problema não for resolvido, reinstale o driver USB do dispositivo.
Jayellos


3
Aconteceu o mesmo comigo. No meu caso, desabilito a opção Desenvolvedor e, em seguida, reabilito. É isso.
Kyaw Nyi Vitória

Respostas:


139

Acabei de ter o mesmo problema hoje depois que meu Nexus 7 e Galaxy Nexus foram atualizados para o Android 4.2.2.

O que o corrigiu foi atualizar as ferramentas da plataforma SDK para a r16.0.1. Para mim, esta versão não foi exibida no meu SDK Manager, então eu a baixei de http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip diretamente.

Você precisará renomear o platform-toolsdiretório e descompactá-lo para android-sdk-windows/platform-tools. Usando o SDK Manager, eu também atualizei as ferramentas sdk mais recentes antes disso.

Se todo o seu Eclipse e o ADT forem antigos, talvez seja necessário atualizá-los também, mas eu não precisei.

Nota: pode ser necessário executar o SDK Manager duas vezes (uma vez para se atualizar) antes de ver os pacotes mais recentes.


1
Tenho r17, mas tenho o mesmo problema. A reversão para a r16.0.1 ajuda?
Alexander Suraphel

@partpartus Eu não acho, então eu acho que o problema para você pode estar agora em outro lugar.
hack_on

Resolvido, problema causado por falta de plataforma de SDK Android
Tai Dao

Funcionou exatamente na ordem descrita. O passo final é permitir isso no telefone.
achou

24
Basta reiniciar o telefone ou dispositivo e aproveitar, não há necessidade de reiniciar o adb e nada mais.
UMAR

135

Tente correr adb devicesdepois de correr adb kill-server. A pergunta de segurança aparece depois disso. Trabalhou para mim.


Funciona se os drivers já estiverem atualizados e ainda estiverem com problemas. Em outros casos, também, pode funcionar, eu acho.
KAmol

Certifique-se de desconectar outras máquinas do dispositivo. No meu caso, meu host da máquina virtual ainda estava conectado via tcpip e meu convidado ainda podia se conectar com êxito, mas estaria offline. Para obter o prompt do RSA, eu tive que executar o adb kill-servercomando no meu host antes de conectar no meu convidado via adb connect 192.x.x.x.

adb start-server depois disso #
madz

Em geral, esse é o truque. Aceitar resposta é para um caso especial.
Ratul

Eu devo ter perdido o 'permitir depuração USB de xx: xx: xx' no telefone. Reiniciar o servidor e reconectar o USB apareceu novamente.
Dan Bolser

77

Também parece ocorrer com frequência quando você se conecta ao dispositivo usando o modo Wi-Fi (no Android Studio ou no console executando, adb tcpip 5555por exemplo).

Consertar:

  1. Desconecte a conexão USB - ou desligue o Wi-Fi do dispositivo se estiver conectado via Wi-Fi.
  2. Feche o Android Studio / Eclipse / outro IDE.
  3. Execute adb kill-serverpara garantir que o adb não esteja sendo executado.
  4. Reinicie seu dispositivo Android.
  5. Depois que o dispositivo reiniciar, conecte-o via USB e execute adb devices. Isso deve iniciar o daemon ADB. Seu dispositivo agora deve estar online novamente.

2
O passo 3 é provavelmente a solução principal aqui! feche a interface da linha de comandos e interrompa o processo, se ainda estiver em execução, e tente novamente!
Reubenjohn

Isso funciona para mim (Galaxy Tab P7500 GT com windows 7)
Sarvan

Trabalhou para mim com Android 8.0 e Windows 10
andoni90

Eu tentei o adb kill-serversem o dispositivo Android reiniciar e não funcionou. Quando repito essas etapas e reinicio o dispositivo conforme mencionado na seção 4, ele funcionou.
E235

62

Encontrei o mesmo problema em um Nexus 7 executando a atualização 4.2.2 OTA. Estou quase certo de que tinha uma conexão ADB via USB e Wi-Fi após a atualização, até que parou de funcionar. Para corrigir, atualizei meu SDK usando:

android update sdk --no-ui

Agora minhas ferramentas de desenvolvimento são:

  • SDK rev 16.0.2
  • Ferramentas do SDK rev 21.1
  • API do SDK 17, rev 2

1
"'android' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote." - também fez um "dir android.exe / s" a partir da raiz da minha unidade C: - não encontrou nada - você está usando Linux ou possui alguns bits especiais que os usuários do Windows não possuem?
precisa saber é o seguinte

Sim, eu uso linux. android é um script de shell em ./sdk/tools/ que inicia o aplicativo java Android SDK Manager. Deve haver um script comparável no tarball do Windows SDK.
precisa saber é o seguinte

7
o comando fornecido pode ser usado no Windows desde que seja feito no seu diretório \ to \ android-sdk \ tools \
dispositivo

4
No Windows 7, para emitir o comando no diretório ... \ android-sdk \ tools \ e fazê-lo funcionar, execute a janela de comando "Como administrador".
John Jorsett

Funcionou para mim com o Nexus 10 e o Galaxy Nexus. Estou usando o Windows XP SP3. Eu tentei mudar a porta usb, reinicia, etx .. nada ajudou, mas esta resposta. Eu estava quase reinstalando o xp, obrigado!
Fer

44

Não posso enfatizar que trocar portas USB é fundamental. Geralmente, as portas USB do painel frontal podem estar com defeito.


5
Trabalhou para mim também. Nexus 10 vezes parecem atrair muita corrente para a porta USB
skubo

Uau, depois de meia hora de becos sem saída, isso mostra que é um problema de alimentação USB! Obrigado!
bigjosh

Às vezes, não é uma porta com defeito. No meu caso, eu tinha o USB conectado durante a inicialização do Windows e não carregava os drivers ADB corretamente. Apenas desconectado e conectado novamente na mesma porta. O Windows maravilhas ...
Ricardo BRGWeb

1
Às vezes, alternar portas funciona. Às vezes, é uma questão de suporte a USB2 vs USB3 de várias combinações de portas + cabo + dispositivo. Alternar das portas frontal para traseira ou com ou sem o indicador "SS" (USB3) às vezes ajuda. Tentar um cabo diferente às vezes ajuda.
Jon Adams

8 horas perdidas para mim. Funciona no USB 3.0, mas não no USB 2.0 por algum motivo (pelo menos para mim). Nunca tive esse problema até agora e, de repente, tenho que usar o 3.0. Que está desperdiçando uma das minhas portas 3.0 agora.
21717 Ryan

39

Para quem se pergunta sobre o 4.2.2, há uma pergunta de segurança que aparece no telefone solicitando a verificação da RSA com o PC. Verifique se suas ferramentas estão atualizadas E permita o acesso ao PC, verificando a pergunta de segurança nos dispositivos em questão. Isso consertou para mim.

E, como sempre, verifique se a depuração está ativada nas opções do desenvolvedor;)


7
Funcionou para mim depois que revoguei as autorizações de depuração do usb. Em seguida, desabilitou e reativou a depuração do usb. A mensagem "permitir este computador" apareceu e o BAM foi mostrado como dispositivo em vez de offline.
CrazyPenguin

21

Vários arquivos adb.exe?

Meu problema foi resolvido quando uma cópia do OLD adb.exe foi excluída do diretório C: / Windows / . Não sei como uma cópia do adb.exe chegou ao C: \ Windows \?

Quando inicio o adb.exe no android-sdk / platform-tools / não tive problemas com a detecção.


Foi o que aconteceu comigo. Acho que algo que baixei para instalar uma ROM há dois anos foi o culpado.
gengkev

Meu Windows 8 teve o mesmo problema e renomear o arquivo c:\windows\adb.exepara outra coisa ( adb.old.exe) resolveu o problema. Eu nem precisei reiniciar ou abrir / fechar a linha de comando. Isso simplesmente funciona. Digitei adb deviceslogo após renomear o antigo adb.exee, em seguida, meu Nexus 7 perguntou se eu quero autorizar este computador. Eu disse que sim e agora, quando emito em adb devicesvez de "offline", diz "dispositivo".
AlexStack

1
Obrigado, este funciona! A mesma coisa aconteceu comigo também, acho que o adb.exe é copiado para o C: \ Windows quando instalamos o software do driver que acompanha o dispositivo.
thinzar00

Como ele foi parar lá embora: / Eu quero saber
Daniel Cheung

1
@DanielCheung Para mim, foi ao instalar os programas para PC KingORoot e / ou KingRoot. Acho que eles próprios instalam uma versão porque não dependem do usuário ter o Android SDK instalado. E sim, excluir a versão antiga (1.0.26) criada no diretório do Windows corrigiu o problema "offline" para mim. :)
Venryx

20

Tente desativar a depuração usb uma vez e, em seguida, ativá-la novamente e conecte seu dispositivo ao sistema: link


2
Este certamente é o método mais simples, seguro e rápido. Eu usei muitas variações de todos os métodos neste segmento. Este é o único que funciona sempre. São apenas três toques no dispositivo Android e o problema desapareceu.
LD James

18

Eu estava tendo esse problema e nenhuma das outras respostas ajudou. O que era necessário, após atualizar o SDK e instalar a API para 4.2.2, estava em execução:

android update adb

Outro problema que eu estava tendo era que estava tentando conectar o ADB por Wi-Fi, que é minha única opção porque as portas USB do meu Mac são realmente finnicky. Infelizmente, o ADB via Wi-Fi não mostra a pergunta de segurança no 4.2.2, portanto, você precisa encontrar um cabo USB que funcione e se conectar através de USB pelo menos uma vez para aceitar a pergunta de segurança, mas depois de fazer isso uma vez , você pode se conectar por Wi-Fi.


Isso fez por mim. Obrigado. Foi batendo a cabeça contra uma parede, uma vez atualizando meu Nexus 7.
Jason Southwell

Eu tentei de tudo nesta página e alguns outros sites que o Google apareceu e meu telefone HTC com Android 4.0.3 ainda estava listado como offline. Finalmente reiniciei o telefone e os dispositivos adb disseram que estava online. Cara, eu gostaria de ter pensado nisso antes.
John Jorsett

Eu recebi este erro: dispositivo offline até encontrar seu comentário sobre wifi - assim que tirei meu telefone do wifi, ele funcionou. Obrigado!
amurrell

17

Se seu dispositivo normalmente se conecta via USB, mas de repente pára de funcionar, especialmente depois que o cabo USB é desconectado e reconectado, tente as seguintes etapas não invasivas antes de executar algumas das ações mais drásticas mencionadas nas outras respostas:

adb kill-server
adb start-server
adb devices

Se o seu dispositivo estiver listado com "dispositivo" ao lado, você estará de volta aos negócios.

Se o seu dispositivo estiver listado com 'offline' ao lado, tente reiniciar o dispositivo. O daemon ADB no dispositivo ocasionalmente fica travado. Percebi isso mais quando desconectei o cabo enquanto o LogCat estava em execução e depois de voltar a conectar via Wi-Fi ou Ethernet.

Se o seu dispositivo não estiver listado, tente as soluções nas outras respostas, começando com a tentativa de um cabo e porta USB diferentes. Esses cabos baratos podem ficar ruins.


Isso ajudou a resolver o meu problema (o emulador do Android estava aparecendo como 'off-line', mas após reiniciar o servidor, conforme descrito, ele voltou ao modo 'dispositivo').
precisa saber é o seguinte

1
Depois de muitas horas tentando encontrar a razão pela qual o adb não funciona mais, era de fato o cabo!
Martin L.

Fui mordido por um cabo danificado mais de uma vez. Os cabos defeituosos normalmente ainda carregam o dispositivo muito bem, então eu também perdi muito tempo antes de tentar outros.
22614 scottt

Oh meu Deus, eu tentei todas as soluções, mas a mais simples - reiniciar o telefone - não veio à minha mente. Isso resolveu meu problema.
Kibin

Eu tive que usar um cabo mais curto - o que eu uso para carregar meu telefone era muito longo!
Rick Mortensen

12

Certifique-se de usar adbdo seuplatform-tools pasta depois de atualizar as ferramentas do SDK.

Finalmente consegui trabalhar depois que percebi que estava usando uma versão desatualizada do ADB copiada /usr/bin.


onde fica esse usr / bin?
AntWo 12/04/19

8

Às vezes isso pode acontecer por causa do erro do servidor adb (eu acho). Está sempre dizendo

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

Basta matar o servidor e começar de novo. Funcionou para mim.

"adb kill-server"
"adb start-server"

7

Eu usei adb connect <device_ip>e não as outras soluções funcionaram porque meu problema estava do outro lado. No dispositivo eu precisava stop adbde reinicie-o start adbd. Agora o dispositivo está "online" novamente.


1
Tinha um Amazon Fire TV Stick com esse problema de conexão por Wi-Fi. Alternando adb fora e outra vez, adb kill-server, adb start-server, em seguida, adb connect <device_ip>como sugerido acima funcionou para mim.
Chenware

6

Corri para o mesmo problema que isso corrigiu para mim. conecte seu telefone via usb primeiro e depois verifique seu ip móvel, que está nas configurações >> sobre o status do telefone >>, execute os seguintes 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


o adb tcpip 5555 não redefine a porta, apenas define uma porta padrão para o dispositivo atual e deve ocorrer após a conexão com um dispositivo e na próxima vez em que você se conectar a um dispositivo via endereço IP, mesmo na rede wifi, ela não precisa de porta
Ehsan sarshar

5

Tentei o dturvene e todas as outras soluções, mas elas não funcionaram. Eu precisava de mais um passo.

Execute estes comandos

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

Para verificar se funcionou, execute 'adb version' antes e depois dos comandos e verifique se é o mais recente. A razão para o adb kill-servercomando é que ele provavelmente está sendo executado e não pode ser atualizado enquanto estiver em execução; portanto, você deve matá-lo primeiro.


5

Para mim, nada funcionou. Passei cerca de 12 horas constantemente pesquisando na Internet e tentando as soluções que funcionavam para outras pessoas com problemas semelhantes.

Finalmente, acabei fazendo apenas o material ADB pela LAN. A configuração estava ao lado da configuração USB Debug e no ADB pode ser ativada com "adb connect [IPADDRESS]: [PORT]". A porta era 5555 no meu telefone.

Espero que isso ajude alguém a voltar ao trabalho em vez de ter que lidar com desvantagens constantes.


5

Essa abordagem funcionou para mim:

  1. adb kill-server
  2. Desative o dispositivo offline no Gerenciador de dispositivos (veja a imagem abaixo)
  3. Habilitar o dispositivo no Gerenciador de dispositivos
  4. adb start-server

Gerenciador de dispositivos, menu "Exibir", "Dispositivos por conexão":

insira a descrição da imagem aqui


4

Inicialmente, encontrei o mesmo problema (com o ADB / fastboot baixado do GitHub ), mas finalmente o fiz funcionar. O que funcionou para mim:

  • Android SDK. Versão ADB: 1.0.31
  • Usando a porta USB frontal ( MacBook Pro 15 ")
  • Reiniciando o telefone após ativar as opções do desenvolvedor e a depuração USB (faça isso 7 vezes, toque em configurações> sobre o telefone> compilar).
  • Kill adb server caso nenhum dispositivo esteja listado (adb kill-server)
  • O ícone de depuração deve estar visível no telefone.
  • Certifique-se de desbloquear a tela de bloqueio para verificar o diálogo de confirmação de impressão digital RSA.

4

Instalou o mais recente android sdk.
A porta USB do dispositivo foi alterada.
Alterado de MTP -> Somente cobrança -> MTP.
Funcionou.


1
Para mim, a alteração de 'Transferindo arquivos de mídia' para 'Transferindo imagens' (que é PTP / MTP) corrigiu o problema (depois de tentar todas as outras correções, incluindo a atualização dos SDKs do Android, usando cabos diferentes, reiniciando o ADB, alternando o modo de desenvolvedor, desconectando / USB em diferentes portas, etc). Irritantemente, essa resposta teve pontuação 0 e estava na segunda página quando eu estava procurando por uma resposta; portanto, vote para tentar ajudar outras pessoas no futuro.
91316 Steven Craft

3

Se você já autorizou a impressão digital RSA do seu PC e tentou o adb kill-server etc. sem sorte, seu problema pode ser apenas o de que você está tentando se conectar a ele enquanto está bloqueado. Tente pressionar o botão de tela e inserir seu padrão - isso foi corrigido para mim.


3

A melhor maneira que achei foi desabilitar e, em seguida, habilitar o dispositivo no Gerenciador de dispositivos e executar o comando adb devices.

  1. Vá para a guia Iniciar e clique com o botão direito em Computador
  2. No menu suspenso, clique em Gerenciar
  3. Na tela de gerenciamento do computador, clique em Gerenciador de dispositivos
  4. No painel direito, expanda dispositivos portáteis para encontrar seu dispositivo
  5. Clique com o botão direito do mouse no nome do seu dispositivo e clique em desativar no menu suspenso
  6. Quando desabilitado, repita a etapa 5, exceto para habilitá-lo.

O dispositivo estará novamente online. É mais rápido.


3

Mais uma possibilidade para pessoas com conexões ADB inconsistentes e se elas estiverem em um Mac e o Android File Transfer instalado: eu descobri que a transferência de arquivos estava interferindo na minha conexão ADB, fazendo com que parasse de funcionar intermitentemente.

Matar o Android File Transfer Agent.appprocesso que procura por dispositivos compatíveis (por exemplo, o Nexus 7) conectados ao Mac cura a descamação para mim.


1
Isso foi o que estava causando o problema para mim no OS X, obrigado!
adaam

3

Como ninguém respondeu à minha situação: você pode não ter acesso ao arquivo ~ / .android / adbkey. Se você iniciar o adb inicialmente com o sudo, ele gerará um par de chaves públicas, gravando-o em ~ / .android / adbkey.pub e ~ / android / adbkey. Obviamente, a chave privada é chmod 600 - somente legível para root no diretório inicial. Posteriormente, iniciar o adb como usuário normal não dará acesso ao arquivo de chave privada, que por sua vez falhará silenciosamente com o "dispositivo offline".


3

O que resolveu para mim no Mac foi atualizar adbpara a versão mais recente (1.0.32). Agora posso ver meu dispositivo online novamente


3

O motivo para um dispositivo ser relatado como offline é que o adb não pode se conectar a ele. O executável Adb do ambiente de desenvolvimento cria uma conexão (soquete) com o dispositivo sob controle. O dispositivo possui um serviço (daemon) que escuta esta comunicação. O daemon é chamado adbd (como em adbdaemon). Quando alguém habilita o adb em um dispositivo, na verdade, inicia-se esse daemon, para que as comunicações possam ser estabelecidas com o dispositivo.

Quando o dispositivo é reportado pelo adb como offline, é porque o daemon não está mais em execução ou está em um estado que não aceita conexões. Na maioria das vezes, isso acontece se a rede cair em uma conexão ativa (rede).

A única maneira de corrigir isso era reiniciando o dispositivo. Pode-se chegar para corrigir o status offline por muitos outros meios, mas reiniciar o dispositivo sempre funciona.


3

Quando estou enfrentando os mesmos problemas do que fazer como abaixo:

  1. Reinicie o adb emitindo adb kill-server seguido de adb start-server em um prompt de comando
  2. Desativar e reativar a depuração USB no telefone
  3. Reinicie o telefone se ele ainda não funcionar. 99% dos meus problemas foram resolvidos com estas etapas.

4. Tente conectar um cabo a outro slot USB. Isso foi ajudado no meu caso.
dredkin

2

É apenas porque o seu computador não possui o driver certo. Para corrigir isso:

  1. Baixe e extraia o SDK do Android

  2. Vá para o Gerenciador de dispositivos (clique com o botão direito do mouse em Computador -> Propriedades -> Gerenciador de dispositivos

  3. No painel direito, expanda dispositivos portáteis para encontrar seu dispositivo

  4. Clique com o botão direito do mouse no nome do dispositivo e clique em Atualizar driver.

  5. Navegue no meu computador para obter o software do driver

  6. Navegue até a pasta SDK do Android na etapa 1.

  7. Em seguida e pronto


O mesmo para mim no Windows 7 e no Nexus 7. Ele parou de funcionar, removi o driver, instalei-o novamente e funcionou
Michał K

No meu caso, é o meu driver do controlador USB 3.0 que não funciona! Não é motorista para o telefone!
VCD

2

Tente reiniciar o servidor adb da seguinte maneira:

adb kill-server

adb start-server

Eu também me deparei com os mesmos problemas que o seu. E reiniciar o servidor adb resolverá esse problema.


2

Atualizei várias vezes, até não poder mais atualizar, mas nunca recebi um aviso na tela; Eu continuei ficando o dispositivo offline.

Meu problema era que eu estava executando o comando ADB de um diretório diferente do que realmente estava sendo atualizado.

O diretório atualizado correto para o ADB exe é:

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

2

Reinicie o dispositivo. Tentei de tudo listado aqui para fazer meu telefone HTC (executando o Android 4.0.3) funcionar, mas adb devicescontinuava dizendo que estava offline. Depois que reiniciei o telefone, ele finalmente estava online. Algumas das outras sugestões aqui podem ter contribuído para o reconhecimento do telefone, mas fazer algumas reinicializações ao longo do caminho enquanto você as experimenta certamente não será prejudicial.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.