我再也不能通过命令行或Eclipse使用ADB连接到我的设备了。

执行命令

adb devices

返回设备名称,但显示为脱机状态。

我尝试过的事情。

切换Android调试模式 重新安装谷歌USB驱动 将操作系统恢复到以前工作的备份(CyanogenMod) 换掉USB数据线 多次重启电话/电脑 更新Android SDK

我真的不知道发生了什么。你觉得我还能试什么,我洗耳恭听。

需要明确的是,如果你遇到了同样的问题,那么问题可能是SDK过时了。从4.2.2开始,有一个安全特性需要您确认连接设备的RSA指纹。打开SDK管理器并更新工具!然后重新启动。


当前回答

在我的三星Galaxy S III上最新的CyanogenMod夜间更新(2013年8月12日)后,我开始面临同样的问题。

我使用了最上面的答案(由w. allison编辑的hack_on)中建议的ADB二进制文件,我在我的手机上得到了一个提示,要求允许访问我的PC(它的RSA密钥)!!现在工作得很好。

下载链接(仅限ADB、Fastboot和相关二进制文件):https://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip

其他回答

在尝试了两次之后,我将手机软件回滚到一个稳定的版本,它终于工作了。我在运行Cyanogen nightlies。无论如何,在这个帖子中发布的东西应该可以帮助遇到这个问题的任何人。

如果你之前已经授权了你的电脑的RSA指纹,并尝试了adb kill-server等,但没有运气,你的问题可能只是在它被锁定时试图连接它。试着按下屏幕上的按钮并输入你的图案-这为我修复了它。

如果你的设备通常通过USB连接,但突然停止工作,特别是在USB线断开并重新连接后,在做其他答案中提到的一些更激烈的事情之前,尝试以下非侵入性步骤:

adb kill-server
adb start-server
adb devices

如果你的设备旁边有“device”字样,那么你的业务就恢复正常了。

如果您的设备旁边显示“离线”,请尝试重新启动设备。设备上的ADB守护进程偶尔会挂起。当我在LogCat运行时断开电缆,并从Wi-Fi或以太网连接切换回来后,我更注意到这一点。

如果你的设备没有列出,那么你应该尝试其他答案中的解决方案,从尝试不同的USB电缆和端口开始。那些廉价的电缆可能会坏掉。

设备报告离线的原因是adb无法连接到该设备。来自开发环境的Adb可执行文件与受控设备创建连接(套接字)。设备有一个侦听此通信的服务(守护进程)。守护进程被称为adbd(在adbdaemon中)。 当在设备上启用adb时,实际上就启动了这个守护进程,因此可以与设备建立通信。

当设备被adb报告为离线时,是因为守护进程不再运行或处于不接受连接的状态。大多数情况下,如果网络在活动(网络)连接上出现故障,就会发生这种情况。

我唯一能解决这个问题的方法就是重启设备。 人们可以通过许多其他方法来修复离线状态,但重新启动设备总是有效的。

对于ADB连接不稳定的人来说,如果他们使用的是Mac电脑,并且安装了Android File Transfer,那么还有一种可能:我发现文件传输干扰了我的ADB连接,导致它断断续续地停止工作。

关闭Android文件传输代理。应用程序进程,寻找兼容的设备(例如,Nexus 7)连接到Mac,解决了我的问题。