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

执行命令

adb devices

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

我尝试过的事情。

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

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

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


当前回答

重新启动设备。我尝试了这里列出的所有方法来让我的HTC手机(运行Android 4.0.3)工作,但adb设备一直显示它离线。重启后,手机终于上线了。这里的一些其他建议可能有助于手机被识别出来,但在试用过程中重新启动几次肯定不会有什么坏处。

其他回答

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

修复:

断开USB连接——或者如果你是通过Wi-Fi连接的,关闭设备的Wi-Fi。 关闭Android Studio/Eclipse/其他IDE。 运行adb kill-server确保adb没有运行。 重新启动Android设备。 设备重新启动后,通过USB连接并运行adb设备。这将启动ADB守护进程。您的设备现在应该再次联机了。

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

在我意识到我使用的是复制在/usr/bin中的过时ADB版本后,我终于让它工作了。

当我试图从Ubuntu在Galaxy S III上安装CyanogenMod时,我也遇到了同样的问题。最后,通过将SD卡直接连接到PC上,我简单地将ZIP文件复制到外部SD卡上。然后我将卡移回手机,当我重新启动手机时,我可以从SD卡安装CyanogenMod。

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

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

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

安装最新的android sdk。 修改设备的USB端口。 由MTP -> Charge only -> MTP改变。 它工作。