我再也不能通过命令行或Eclipse使用ADB连接到我的设备了。
执行命令
adb devices
返回设备名称,但显示为脱机状态。
我尝试过的事情。
切换Android调试模式
重新安装谷歌USB驱动
将操作系统恢复到以前工作的备份(CyanogenMod)
换掉USB数据线
多次重启电话/电脑
更新Android SDK
我真的不知道发生了什么。你觉得我还能试什么,我洗耳恭听。
需要明确的是,如果你遇到了同样的问题,那么问题可能是SDK过时了。从4.2.2开始,有一个安全特性需要您确认连接设备的RSA指纹。打开SDK管理器并更新工具!然后重新启动。
我在尝试使用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!
它应该连接好了,你就可以出发了。
如果你的设备通常通过USB连接,但突然停止工作,特别是在USB线断开并重新连接后,在做其他答案中提到的一些更激烈的事情之前,尝试以下非侵入性步骤:
adb kill-server
adb start-server
adb devices
如果你的设备旁边有“device”字样,那么你的业务就恢复正常了。
如果您的设备旁边显示“离线”,请尝试重新启动设备。设备上的ADB守护进程偶尔会挂起。当我在LogCat运行时断开电缆,并从Wi-Fi或以太网连接切换回来后,我更注意到这一点。
如果你的设备没有列出,那么你应该尝试其他答案中的解决方案,从尝试不同的USB电缆和端口开始。那些廉价的电缆可能会坏掉。
在我的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管理器两次(一次更新自己),才能看到最新的包。