(转)彻底解决Linux/Mac系统下ADB识别设备的问题

原作者:benhero
适用平台:Linux/Mac

现象

Android真机连接PC主机进行调试时,经常会遇到无法连接的提示,重新插拔一下USB数据线就好了。

原理

Android Studio使用ADB工具来与外围设备进行通信,当外围设备通过USB接口连接主机后,ADB会将相应的设备信息写入~/.android/adb_usb.ini配置文件中,当需要使用时,再读取出来;上面遇到的问题,就是此配置文件无法写入设备信息导致的。

明白原因之后,下面开始解决。

解决

给配置文件增加写权限

命令行如下

chmod 666 ~/.android/adb_usb.ini

手动添加USB设备ID到配置文件

首先查找设备的生产厂商标识(Vendor ID),Linux系统操作如下:
手机通过USB连接PC主机,在命令终端输入lsusb命令;断开USB连接,再次输入lsusb命令;比较两次结果不同的部分,缺的那一行就是此手机的信息。示例如下

IJKPlayer状态机图

Mac系统下使用system_profiler SPUSBDataType 代替lsusb。
示例如下

IJKPlayer状态机图

最后重启ADB,命令行如下

adb kill-server
adb start-server