在遇到此类问题时,百度或者谷歌搜索结果基本都是如下所示方法:
使用adb devices 出现如下:
List of devices attached
???????????? no permissions
同时在DDMS中显示设备名也显示????????????,也无法显示进程名,无法查看log。
解决方法:
1、设置usb权限
因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。
$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 010: ID 19d2:1366 ONDA Communication S.p.A. (如果不确定是不是它,就拔掉再插上!呵呵。)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
列表中,Bus 001 Device 010: ID 19d2:1366 ONDA Communication S.p.A. . 请记录下USB的id信息19d2和idVendor1366。
首先,创建文件:
$sudo vim /etc/udev/rules.d/70-android.rules
加入以下内容:
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1366",MODE="0666"
运行命令,重启udev:
$sudo chmod a+rx /etc/udev/rules.d/70-android.rules
$sudo service udev restart
2、不需要重启计算机,重新启动adb server下就ok
拔掉usb重新连上再执行:
sudo ./adb kill-server
./adb devices
./adb root (这一步很重要 )
./adb devices
List of devices attached
N880E device
虽说上面的方法可以解决大部分的人的问题,但是随着Android的版本更新很快,还有很多的人上面的方法可能解决不了问题。我就是其中之一,本篇博文也是其中之一。下面记录一下解决方法:
假如手里有一个Android5.0版本的设备,而PC上/etc/udev/rules.d/路径下的文件需要是70以后数字的文件,或者说不能是51开头的数字,具体定义的规则我没有细究。如果使用了51开头的文件,是可以识别的,但是就是上面所说的问题,无法使用,换成70问题就解决了。
换言之如果Android版本为4.x,那么最好使用51开头的文件。
我的问题是这样解决的,希望对遇到该问题的朋友有所帮助。具体的原因就不细究了,以后有空了再说。