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

执行命令

adb devices

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

我尝试过的事情。

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

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

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


当前回答

下面是您可以通过命令行执行的步骤。无需访问设备。

步骤1:执行“adb devices -l”,您将看到离线设备。现在记下usb后面的数字:Example=> usb:1-1.4.2

步骤2:echo '1-1.4.2' |sudo tee /sys/bus/usb/drivers/usb/unbind

步骤3:echo '1-1.4.2' |sudo tee /sys/bus/usb/drivers/usb/bind

步骤4:检查“adb devices -l”。这些设备应该在线。

其他回答

我在尝试使用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!

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

由于没有人对我的情况给出答案:您可能无法访问~/。android / adbkey文件。如果最初使用sudo启动adb,它将生成一个公钥对,将其写入~/.android/adbkey。Pub和~/android/adbkey。当然,私钥是chmod 600—仅对主目录中的根目录可读。随后以普通用户启动adb将不允许访问私钥文件,这反过来会以“设备脱机”的方式无声地失败。

但我找到了最简单的方法 只需进入DDMS并按照图中所示进行操作…

Linux下:删除~/目录。重新启动ADB。

不是真正的答案,但更有助于解决CM的明显问题。 我有一个HTC Inspire HD运行cm-11-20140309非官方BR1-ace(稳定版本)。我可以在更新之前使用adb,但我从来没有安装SDK,因为我不需要。以上所有方法我都试过了。

起初我以为我的问题是MTP驱动程序,但事实并非如此。在安装和更新SDK到包括4.4.2之后,HTC MTP设备驱动程序在通过USB连接时安装正常,但在新的SDK安装位置使用adb时,在MTP和ptp模式下,设备仍然显示为离线,同时调试和打开。当我关闭usb调试手机自动重启,我收到错误:

"不幸的是进程android.process.media已停止"

新的CM在developer options下有一个选项,可以启用通过WIFI进行调试,所以我也尝试了一下,结果显示无法连接到IP地址和端口。和其他海报一样,我能ping通IP地址。

我还检查了启用ADB和应用程序的根访问选项,因为它只设置为apps,当我使用ADB设备时,手机仍然显示离线,偶尔它会抛出如上所示的相同错误。

编辑:

现在,我的手机强制重新启动,我重新启动调试,插入并运行adb设备,最后手机提示我输入RSA密钥。由于某种原因,我之前没有收到提示,现在电话接通了。因此,问题可能是在重新启动后,需要将根访问权限从应用程序切换到应用程序和adb。

以下是它显示离线的原因:http://playingwithsid.blogspot.com/2013/05/android-device-offline-fixing-adb.html