adb 设备离线 offline 怎么办?原因和解决方法
adb devices 显示手机为 offline(设备离线)的原因,无论是 USB 还是 Wi-Fi 连接,以及真正有效的解决方法,从重启 adb 服务到更新 platform-tools。
adb devices 能看到手机,但后面显示的是 offline,而不是 device:
List of devices attached
R58M123ABC offlineOffline(设备离线) 表示 adb 服务能看到手机,但双方没能完成 ADB 握手,或者连接已经断开。此时 adb shell、adb install 等命令都会报 error: device offline。下面按常见程度从高到低列出原因。
1. 重启 adb 服务
最常见的原因是 adb 服务状态过期,尤其是在手机休眠、重启或切换 USB 模式之后。
adb kill-server
adb start-server
adb devices重启服务后,拔掉数据线再重新插上。
2. 解锁手机,看看有没有弹窗
第一次连接某台电脑时,手机会弹出 允许 USB 调试吗?(Allow USB debugging?)。在等待你确认期间,某些版本的 adb 会显示 offline 而不是 unauthorized。解锁屏幕并点击 允许。如果没有弹窗,进入开发者选项,点击 撤销 USB 调试授权 (Revoke USB debugging authorizations),关闭再打开 USB 调试,然后重新连接。
3. 更新 platform-tools
旧版 adb 客户端可能无法和较新的 Android 版本完成握手,从而显示 offline。查看版本:
adb version如果版本已经是好几年前的,从 Google 下载最新的 Android SDK platform-tools,并确认 PATH 没有指向旧的副本(Android Studio、Genymotion 和一些手机助手都会自带 adb)。
4. 两个程序在抢手机
Android Studio、scrcpy、手机管理软件、模拟器和厂商的电脑套件都可能各自启动 adb 服务。不同版本的服务会不断互相重启,手机就会反复变成 offline。关闭其他工具,再按第 1 步重启服务。详见 设备被占用或未授权的解决方法。
5. 数据线、接口和 USB 模式
- 换一根确定能传数据的数据线,并插在电脑本身的 USB 接口上,不要用集线器。
- 在部分手机上,从 USB 通知中把 USB 模式从 仅充电 (Charging only) 切换为 传输文件 (File transfer),有助于让连接稳定下来。
6. Wi-Fi 连接:连接断了
通过 adb connect 连接的手机,在 Wi-Fi 休眠、IP 变化或无线调试关闭时会变成 offline。
adb disconnect 192.168.1.20:5555
adb connect 192.168.1.20:5555如果这一步报 Connection refused,说明网络模式已关闭。见 连接被拒绝 Connection refused 的解决方法。
7. 重启手机
其他方法都无效时,重启手机和电脑。这样可以清除手机上卡住的 adbd,以及电脑上状态异常的 USB 驱动。
ADBKit 如何处理
ADBKit 不使用电脑上的 adb 服务。Chrome 或 Edge 通过 WebUSB 直接与手机通信,所以在 ADBKit 中不会因为服务版本不一致而出现设备离线。但它需要独占 USB 连接:如果其他程序的 adb 服务占用了手机,ADBKit 会提示设备被占用,并告诉你需要关闭什么。通过 Wi-Fi 连接时,ADBKit 会明确显示「连接已断开」状态,并提供重新连接。
如果 adb devices 什么都不显示,请看 adb devices 找不到设备。