Android ADB设备离线,无法发出命令


329

我无法再通过命令行或在Eclipse中使用ADB连接到我的设备。

运行命令

adb devices

返回设备名称,但表示它已脱机。

我尝试过的事情。

  1. 切换Android调试模式
  2. 重新安装了Google USB驱动程序
  3. 将操作系统还原到以前可以正常工作的备份(CyanogenMod
  4. 交换USB线
  5. 多次重启手机/电脑
  6. 更新了Android SDK

我真的不知道发生了什么。您认为我可以尝试的其他任何事情,我都很高兴。

明确地说,如果您遇到同样的问题,则问题可能是过时的SDK。从4.2.2版本开始,有一项安全功能要求您确认连接设备的RSA指纹。打开SDK管理器并更新工具!然后重启。


22
尝试另一个USB端口。
jayellos

唯一的其他端口是usb3
Brian

3
我也遇到过这种问题。我所做的是,* issue命令adb kill-server,adb start-server。*尝试另一个USB端口,大多数情况下它将在PC背面工作。*重新启动设备,*重新启动Eclipse,*重新启动计算机,*更改USB电缆,某些USB电缆会失效(低质量)。最后,如果问题仍未解决,请重新安装设备USB驱动程序。
jayellos


3
我也一样 就我而言,我只是禁用“开发人员”选项,然后重新启用。这就对了。
Kyaw Nyi

Answers:


139

我将Nexus 7Galaxy Nexus更新到Android 4.2.2 后,今天遇到了同样的问题。

对我来说固定的是将SDK平台工具升级到r16.0.1。对我而言,此版本未在我的SDK管理器中显示,因此我直接从http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip中将其下拉。

然后,您需要重命名platform-tools目录并将其解压缩到android-sdk-windows/platform-tools。在使用SDK Manager之前,我还更新了最新的sdk工具。

如果您的整个Eclipse和ADT都是古老的,则可能还需要更新它们,但我不需要这样做。

注意:您可能需要运行两次SDK Manager(一次更新自身),然后才能看到最新的软件包。


1
我有r17,但遇到同样的问题。恢复到r16.0.1会有所帮助吗?
Alexander Suraphel 2013年

@spartacus我不认为,所以我认为对您来说问题可能出在其他地方。
hack_on 2013年

解决了问题,造成失踪的Android SDK平台
邰倒

完全按照所述顺序工作。最后一步是允许它在电话上。
vlad

24
只需重新启动手机或设备即可享受,无需重新启动adb。
UMAR 2013年

135

运行adb devices后尝试运行adb kill-server。之后会弹出安全问题。为我工作。


如果您的驱动程序已经是最新的并且仍然有问题,则可以使用。我认为在其他情况下也可能有效。
2015年

确保从设备断开任何其他机器的连接。在我的情况下,我的虚拟机主机仍通过tcpip连接,我的客户机仍可以成功连接,但是它将脱机。要获取RSA提示符,我必须先在主机上运行adb kill-server命令然后才能通过进行连接adb connect 192.x.x.x

之后的adb启动服务器
madz '16

一般来说,这就是窍门。接受答案适用于特殊情况。
拉图尔

我一定错过了手机上的“允许从xx:xx:xx进行USB调试”。重新启动服务器并重新连接USB再次弹出。
Dan Bolser

77

当您使用Wi-Fi模式(例如,在Android Studio或控制台中运行adb tcpip 5555)连接到设备时,这种情况似乎也经常发生。

修理:

  1. 断开USB连接-如果您通过Wi-Fi连接,请关闭设备的Wi-Fi。
  2. 关闭Android Studio / Eclipse /其他IDE。
  3. 运行adb kill-server以确保adb未运行。
  4. 重新启动您的Android设备。
  5. 设备重启后,通过USB连接并运行adb devices。这应该启动ADB守护程序。您的设备现在应该再次联机。

2
步骤3最有可能是这里的关键解决方案!关闭命令行界面,如果进程仍在运行,请终止该进程,然后重试!
reubenjohn 2014年

这对我有效(带有Windows 7的Galaxy Tab GT P7500)
萨凡(Sarvan

为我使用Android 8.0和Windows 10
andoni90's

我尝试在adb kill-server没有重新启动Android设备的情况下运行,但无法正常工作。当我重复这些步骤并按照第4节中的说明重新启动设备时,它就起作用了。
E235

62

我在运行4.2.2 OTA更新的Nexus 7上遇到了相同的问题。我几乎可以肯定,更新之后我将通过USB和Wi-Fi建立ADB连接,直到它停止工作为止。要修复,我使用以下方法更新了我的SDK:

android update sdk --no-ui

现在我的开发工具是:

  • SDK版本16.0.2
  • SDK工具21.1版
  • SDK API 17,修订版2

1
““ android”未被识别为内部或外部命令,可操作程序或批处理文件。” -在我的C:驱动器的根目录下是否也有一个“ dir android.exe / s”-什么都没找到-您使用的是Linux,还是Windows用户没有的某些特殊位?
BrainSlugs83

是的,我使用linux。android是./sdk/tools/下的shell脚本,可启动android SDK Manager Java应用。Windows SDK压缩包中必须有一个类似的脚本。
dturvene

7
只要在您的path \ to \ android-sdk \ tools \目录中完成,给出的命令就可以在Windows上使用
小工具

4
在Windows 7中,要从... \ android-sdk \ tools \目录发出命令并使它起作用,请运行命令窗口“以管理员身份”。
John Jorsett

它适用于Nexus 10和Galaxy Nexus。我正在使用Windows XP SP3。我试图更改USB端口,重新启动,等等。除了这个答案,没有任何帮助。我几乎要重新安装XP,谢谢!
费尔

44

我不能强调切换USB端口是关键。通常,前面板USB端口可能有故障。


5
也为我工作。Nexus 10有时似乎会为USB端口消耗太多电流
skubo 2013年

哇,经过1/2个小时的死胡同,事实证明这是USB供电问题!谢谢!
bigjosh

有时它不是有缺陷的端口。就我而言,我在Windows启动过程中插入了USB,但未正确加载ADB驱动程序。只需拔下插头,然后再次插入同一端口即可。Windows奇观...
Ricardo BRGWeb

1
有时切换端口有效。有时,这取决于各个端口+电缆+设备组合对USB2和USB3的支持。从前端口切换到后端口,或带有或不带有“ SS”指示灯(USB3)的端口有时会有所帮助。尝试使用其他电缆有时会有所帮助。
乔恩·亚当斯

我浪费了8个小时。它可以在USB 3.0上运行,但由于某些原因(至少对我而言)不能在USB 2.0上运行。到现在为止都没有这个问题,突然之间我不得不使用3.0。现在浪费我的3.0端口之一。
瑞安

39

对于想知道4.2.2的任何人,电话上都会出现一个安全问题,要求与PC进行RSA验证。确保您的工具已更新,并且通过验证有关设备上的安全性问题来允许PC访问。这为我解决了。

和往常一样,在开发人员选项中确认已启用调试;)


7
一旦我取消了USB调试授权,它便对我有用。然后禁用并重新启用USB调试。弹出“允许这台计算机”消息,BAM显示为设备而不是脱机。
CrazyPenguin

21

多个adb.exe文件?

C:/ Windows /删除OLD adb.exe的副本时,我的问题已解决。我不知道adb.exe的副本如何到达C:\ Windows \?

当我从android-sdk / platform-tools /启动adb.exe时,我的检测没有问题。


这就是我发生的事情。我认为两年前我下载了安装ROM的东西是罪魁祸首。
gengkev 2014年

我的Windows 8出现了相同的问题,并将其重命名c:\windows\adb.exe为其他名称(adb.old.exe)解决了该问题。我什至不需要重新启动或打开/关闭命令行。它只是工作。adb devices重命名旧版本后,我输入了正确的名称adb.exe,然后Nexus 7询问是否要授权此计算机。我说是,现在当我发布adb devices而不是“离线”时,它说的是“设备”。
AlexStack

1
谢谢,这一作品!我也发生了同样的事情,当我们安装设备随附的驱动程序软件时,我认为adb.exe被复制到C:\ Windows。
thinzar00

它是如何到达那里的://我想知道
Daniel Cheung

1
@DanielCheung对我来说,这是在安装KingORoot和/或KingRoot pc程序时。我猜他们自己安装了一个版本,因为他们不依赖于安装了Android SDK的用户。是的,删除它从Windows目录创建的旧版本(1.0.26)对我来说解决了“离线”问题。:)
Venryx

20

尝试关闭USB调试一次,然后重新启用它,然后将设备与系统连接:链接


2
这当然是最简单,最可靠和最快的方法。我在此线程中使用了所有方法的许多变体。这是每次都有效的唯一方法。只需在Android设备上轻按三下,问题就解决了。
LD詹姆斯

18

我遇到了这个问题,其他答案都无济于事。在更新SDK并安装适用于4.2.2的API之后,需要执行的操作是:

android update adb

我遇到的另一个问题是我试图通过Wi-Fi连接ADB,这是我唯一的选择,因为Mac上的USB端口确实很灵巧。不幸的是,通过Wi-Fi的ADB在4.2.2中没有显示安全性问题,因此您需要找到一条可以正常工作的USB电缆并至少通过USB连接一次以接受安全性问题,但是在您执行一次之后,您可以通过Wi-Fi连接。


这为我做到了。谢谢。被扑我的头靠在墙上,因为我更新的Nexus 7
贾森萨斯维尔

我尝试了此页面上的所有内容以及Google打开的其他一些网站,但运行Android 4.0.3的HTC手机仍被列为脱机状态。我终于重新启动了手机,然后adb设备说它在线。伙计,我希望我早先想到了。
John Jorsett 2014年

我收到此错误消息:设备处于脱机状态,直到找到您对wifi的评论-我将手机从wifi上取下后,它就开始工作了。谢谢!
amurrell 2014年

17

如果您的设备通常通过USB连接,但是突然停止工作,尤其是在断开USB电缆的连接并重新连接之后,请尝试执行以下非侵入性步骤,然后再执行其他答案中提到的一些更激烈的事情:

adb kill-server
adb start-server
adb devices

如果您的设备旁边列出了“设备”,则表示您已恢复营业。

如果您的设备旁边列出了“脱机”,请尝试重新启动设备。设备上的ADB守护程序有时会挂起。当我在LogCat运行时断开电缆连接并从Wi-Fi或以太网连接切换回去后,我注意到了这一点。

如果未列出您的设备,则应尝试其他答案中的解决方案,首先尝试使用其他USB电缆和端口。这些cheapo电缆可能会变坏。


这帮助解决了我的问题(Android仿真器显示为“脱机”,但按照所述重启服务器后又回到“设备”模式)。
Greg0ry 2014年

1
经过数小时的尝试来找出adb不再工作的原因之后,实际上是电缆!
Martin L.

我被一根坏电缆咬了不止一次。不良的电缆通常仍可以使设备正常充电,因此在尝试使用其他电缆之前,我也浪费了大量时间。
斯科特,2014年

哦,天哪,我已经尝试了所有解决方案,但是最简单的解决方案(重新启动电话)却没想到。那解决了我的问题。
kibin 2015年

我必须使用较短的电缆-我用来给手机充电的电缆太长了!
里克·莫滕森

12

更新SDK工具后,请确保adb从您的platform-tools文件夹中使用。

当我意识到我正在使用复制到中的ADB的过时版本时,终于使该工作正常了/usr/bin


这个usr / bin在哪里?
AntWo

8

有时可能由于adb服务器错误而发生(我认为)。总是说

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

只需杀死服务器,然后重新启动即可。它为我工作。

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

7

我使用adb connect <device_ip>了其他解决方案,但都无法使用,因为我的问题是另一方面。在设备上,我需要stop adbd重新启动它start adbd。设备现在再次“在线”。


1
曾有一个Amazon Fire TV Stick通过Wifi连接遇到此问题。亚行切换和关闭再次adb kill-serveradb start-server,然后adb connect <device_ip>如以上建议为我工作。
chenware '16

6

我遇到了同样的问题,这个问题已经为我解决了。首先通过usb连接手机,然后确保检查设置>>关于手机>>状态下的移动IP,运行以下命令。


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


adb tcpip 5555不会重置端口,它只是为当前设备设置一个默认端口,应该在连接到设备后进行;下一次当您通过ip地址连接到设备时,即使在wifi网络上也不需要端口
Ehsan sarshar

5

我尝试了dturvene和所有其他解决方案,但是它们没有用。我还需要一步。

运行这些命令

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

要验证它是否有效,请在命令之前和之后运行“ adb version”,并确保它是最新的。该adb kill-server命令的原因是它很可能正在运行,并且在运行时无法更新,因此必须首先将其杀死。


5

对我而言,没有任何作用。我花了大约12个小时不断地在Internet上搜索并尝试适用于其他遇到类似问题的人的解决方案。

最后,我最后只是通过LAN完成ADB的工作。该设置紧邻USB调试设置,在ADB中可以通过“ adb connect [IPADDRESS]:[PORT]”激活。我的电话上的端口是5555。

我希望这可以帮助某人恢复工作,而不必面对不断出现的弊端。


5

这种方法对我有用:

  1. adb kill-server
  2. 在设备管理器中禁用离线设备(请参见下图)
  3. 在设备管理器中启用设备
  4. adb start-server

设备管理器,“查看”菜单,“按连接的设备”:

在此处输入图片说明


4

我最初遇到了相同的问题(使用从GitHub下载的ADB / fastboot ),但最终我使它起作用。对我有用的是:

  • Android SDK。亚行版本:1.0.31
  • 使用前置USB端口(MacBook Pro 15英寸)
  • 启用开发选项和USB调试后重新启动手机(方法是7次点击设置>关于手机>构建)。
  • 万一未列出任何设备,请杀死adb服务器(adb kill-server)
  • 调试图标应该在电话上可见。
  • 确保解锁锁屏以检查RSA指纹确认对话框。

4

安装了最新的android sdk。
更改了设备的USB端口。
从MTP->仅收费-> MTP更改。
有效。


1
对我而言,从“传输媒体文件”更改为“传输图像”(即PTP / MTP)已解决了该问题(尝试了所有其他修复程序,包括升级Android SDK,使用不同的电缆,重新启动ADB,循环开发人员模式,拔出/将USB重新插入其他端口等)。烦人的是,该答案的得分为0,当我在寻找答案时位于第二页,因此请投票支持以后尝试帮助他人。
史蒂芬·克拉夫特

3

如果您之前已经授权了PC的RSA指纹,并且没有运气尝试过adb kill-server等,那么您的问题可能就是您试图在锁定时连接到它。尝试按屏幕上的按钮并输入您的图案-这已为我修复。


3

我认为最好的方法是从设备管理器中禁用然后启用设备,然后运行adb devices命令。

  1. 转到“开始”选项卡,然后右键单击“ 计算机”
  2. 在下拉菜单中,单击管理
  3. 在计算机管理屏幕中,单击设备管理器。
  4. 在右窗格中,展开便携式设备以找到您的设备
  5. 右键单击您的设备名称,然后在下拉菜单上单击禁用
  6. 当它被禁用时,除了启用它以外,重复步骤5。

设备将重新联机。它更快。


3

对于ADB连接不稳定的人,如果他们在Mac上并且安装了Android File Transfer,则还有另一种可能性:我发现文件传输干扰了我的ADB连接,导致它间歇性地停止工作。

取消Android File Transfer Agent.app寻找可连接到Mac的兼容设备(例如Nexus 7)的过程,这对我来说却很脆弱。


1
这就是导致我在OS X上出现问题的原因,谢谢!
adaam

3

由于没人能回答我的情况:您可能无权访问〜/ .android / adbkey文件。如果最初使用sudo启动adb,它将生成一个公钥对,并将其写入〜/ .android / adbkey.pub和〜/ android / adbkey。当然,私钥是chmod 600-仅对主目录中的root可读。随后,以普通用户身份启动adb将无法访问私钥文件,而私钥文件将因“设备离线”而静默失败。



3

设备被报告为脱机的原因是adb无法连接到该设备。开发环境中的Adb可执行文件将与受控设备建立连接(套接字)。设备具有用于侦听此通信的服务(守护程序)。该守护程序称为adbd(与adbdaemon中一样)。实际上,当在设备上启用adb时,便会启动该守护程序,因此可以与该设备建立comms。

当adb将设备报告为脱机时,是因为守护程序不再运行或处于不接受连接的状态。如果网络在活动(网络)连接上断开,通常会发生这种情况。

我可以解决此问题的唯一方法是重新启动设备。可以通过许多其他方法来修复脱机状态,但是重新启动设备始终有效。


3

当我面临以下相同问题时:

  1. 通过发出adb kill-serveradb start-server来重新启动adb在命令提示符来
  2. 在手机上禁用并重新启用USB调试
  3. 如果仍然无法正常启动手机。这些步骤已解决了我99%的问题。

4.尝试将电缆插入另一个USB插槽。对我而言,这很有帮助。
德雷金

2

仅仅是因为您的计算机没有正确的驱动程序。要解决此问题:

  1. 下载并解压缩Android SDK

  2. 转到设备管理器(右键单击计算机->属性->设备管理器

  3. 在右窗格中,展开便携式设备以找到您的设备

  4. 右键单击您的设备名称,然后单击更新驱动程序软件

  5. 浏览我的计算机以获取驱动程序软件

  6. 在步骤1浏览到您的Android SDK文件夹。

  7. 接下来,您完成了


我也一样在Windows 7和使用Nexus 7,它停止工作,我删除了驱动程序,再次进行安装它和它的工作
米哈尔ķ

就我而言,这是我的USB 3.0控制器驱动程序不起作用!不是手机的驱动程序!
VCD

2

尝试重新启动adb服务器,如下所示:

adb kill-server

adb start-server

我也遇到了与您同样的问题。并重新启动adb服务器将解决此问题。


2

我更新了很多次,直到无法更新为止,但是屏幕上再也没有提示。我只是让设备离线。

我的问题是我正在从与实际更新目录不同的目录中运行ADB命令。

ADB exe的正确更新目录是:

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

2

重新启动设备。我尝试了此处列出的所有内容,以使HTC手机(运行Android 4.0.3)正常工作,但adb devices一直说它处于离线状态。重新启动电话后,它终于联机了。这里的其他一些建议可能有助于识别电话,但是在尝试过程中进行一些重新启动肯定不会造成伤害。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.