移动测试新手指引--ADB 连接设备

作为 Android 端的开发/测试新手而言,经常会遇到 ADB 连接识别不到的问题。
有的情况是新换一个手机识别不到,有的可能是第二天突然识别不到。
这里经过收集汇总整理了一下 ADB 连接不到设备的可能原因和解决方法。

ADB 连接不到设备主要有以下几类情况:

  1. 设备驱动没有自动正确安装
  2. 数据线问题
  3. 手机设置问题
  4. ADB 服务原因

设备驱动没有安装成功

这种情况一般在换了一个新手机会出现,特别是个别机型容易出现(比如三星);
一般在插上 USB 线之后都会提示你设备没有正常识别,这时就需要手动重新安装。通过驱动精灵或者官网下载驱动。

也可以使用一些网上的偏方来解决驱动问题(死马当活马医)

曾经遇到过原来正常的手机,突然有一天提示无法识别设备,但是检查驱动发现驱动已经正常安装最新版本,后来换了跟 USB 线就好了。

数据线问题

设备驱动能正常安装的情况下,通常插上 USB 线之后可以选择充电、文件传输、图片传输等模式。
如果没有自动出现选择弹框,则需要检查是否可以手动设置 USB 连接模式。
如果不支持手动设置,那么数据线可能只支持充电模式,需要换根可以支持文件传输的数据线。
数据线正常的情况下,设置为文件传输模式后,可以直接打开设备连接后的挂载目录并可以进行文件传输操作。

手机设置问题

在电脑和手机直接可以正常进行文件传输的前提下,如果 ADB 还是检测不到的话,那么就需要检查手机是否设置了开发者选项。
具体需要打开开发者选项,开启 USB 调试,部分新机型可能需要设置允许通过 ADB 安装应用,允许安装未知来源应用等选项。

ADB 服务问题

上述情况都没有问题时,还是不能正常连接 ADB,那可能就是 ADB 服务的问题了,具体有几种情况:

  1. ADB 版本过低
  2. ADB 版本错误(64 位机器安装了 32 位的 ADB)
  3. ADB Server 假死(通过重启 ADB Server)
  4. ADB Daemon 假死(通过重启手机)
  5. 没有通过 ADB 授权(重新拔插后确认授权)

其它具体问题处理

提示 offline

这种情况通常是 ADB Server 和 ADB Daemon 连接中断导致的;比如:手机 USB 连接后直接拔掉过,TCP 模式中断过。
具体的修复方法是在手机重新连接之后:

  1. 重启 ADB Server(adb kill-server && adb start-server)
  2. 重新关闭和打开开发者选项的 USB 调试(重启 ADB Daemon)
  3. 直接重启手机(就是重启 ADB Daemon)
  4. 有的时候也可以试试重启电脑(属于神学范畴了)

提示 unauthorized

这种情况一种是 USB 连接新手机时没有确认授权,另一种是 TCP 模式连接的设备已经被占用了。
对于 USB 连接时提示的未授权情况,可以重新确认授权即可,具体步骤:

  1. 重新关闭再打开 USB 调试选项
  2. 重新拔插 USB 数据线
  3. 重启 ADB Server
  4. 直接在开发者选项中点击【撤掉 USB 所有授权】,然后在重新尝试上述操作

对于 TCP 模式进行连接的设备,因为只能连接一个设备,出现未授权时可能是有另外的电脑已经连接上了,需要先断开在重新连接。

上述只是汇总了常规的一些情况和处理方式,还有一些需要修改 adb 配置文件的方法,如果需要的话也可以尝试。如果还有遇到过其它坑的欢迎补充!


↙↙↙阅读原文可查看相关链接,并与作者交流