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

执行命令

adb devices

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

我尝试过的事情。

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

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

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


当前回答

就我而言,我在使用第一代华硕Nexus 7时就遇到了这个问题。 我已经将日志缓冲区大小从256K增加到4M。当我把它恢复到默认值(设置>开发人员设置>记录器缓冲区大小),拔下插头,然后插回去,它工作得很好。

其他回答

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

修复:

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

我在尝试使用Android 11中内置的“无线ADB”功能连接时偶然发现了这个问题。

我没法把它接好。总是显示为“脱机”。

我所做的是:

首先断开所有ADB设备,这是一个很好的措施:

adb disconnect

然后在开发人员选项中,进入“无线ADB”功能,如果您还没有这样做的话。转到“使用密码配对”或类似选项。在那里,一个IP和端口将弹出一个对话框,连同一个引脚。连接到电话使用:

adb pair 192.168.2.xxx:42838 # Put the IP and port of that dialog in this way

(注意主窗口上的端口和PIN弹出框上的端口是不一样的)

您的(PC) ADB将提示您输入pin。输入并按ENTER。

这样,手机上弹出的PIN码应该消失,计算机名应该显示在主窗口的可信设备列表中。

如果你做到了这一步,下一步肯定会奏效。尝试现在连接到您的手机使用:

adb connect 192.168.2.xxx:53548 # This time use the port shown in the main window!

它应该连接好了,你就可以出发了。

就我而言,我在使用第一代华硕Nexus 7时就遇到了这个问题。 我已经将日志缓冲区大小从256K增加到4M。当我把它恢复到默认值(设置>开发人员设置>记录器缓冲区大小),拔下插头,然后插回去,它工作得很好。

对我来说,什么都没用。我花了大约12个小时不停地在网上搜索,并尝试对其他有类似问题的人有效的解决方案。

最后,我在局域网上完成了ADB的工作。该设置就在USB调试设置旁边,在ADB中可以通过“ADB connect [IPADDRESS]:[PORT]”激活。我手机的端口是5555。

我希望这能帮助一些人重新回到工作中,而不是不得不处理不断的障碍。

在我的Nexus 7和Galaxy 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管理器之前,我也已经更新到最新的SDK -tools。

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

注意:您可能需要运行SDK管理器两次(一次更新自己),才能看到最新的包。