在linux开发android程序时,用真机连接电脑,打开手机的USB调试模式,使用Android Studio安装App,出现错误,使用adb 命令查看设备:
win@spring:~$ adb devcies
List of devices attached
D8YDU15906021739 no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
从错误信息得出,没有建立udev rules,导致驱动无法识别,使用lsusb命令 ,查看当前电脑连接的USB设备:
Bus 002 Device 004: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 002 Device 003: ID 046d:c31d Logitech, Inc. Media Keyboard K200
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 12d1:105c Huawei Technologies Co., Ltd.
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
因为我的是华为手机,所以 Bus 001 Device 005: ID 12d1:105c Huawei Technologies Co., Ltd. 便是当前连接的手机设备,
解决办法如下:在/etc/udev/rules.d 打开或新建(如果不存在)51-android.rules文件,并进行编辑
sudo gedit /etc/udev/rules.d/51-android.rules
新增一条记录:
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
其中”12d1”对应华为的设备号,保存后,重新插拔USB,再次使用adb devices,便能生效:
win@spring:~$ adb devices
List of devices attached
D8YDU15906021739 device
注意:还有一种通用的方式
在51-android.rules中只写一条:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
针对所有的手机都能生效。