不少人曾在Windows下及Ubuntu下都遇到过Android设备无法识别的情况,就是run as Android Application的时候,target显示"??????",使用adb devices 查看设备状况,显示
List of devices attached
???????????? no permissions
Windows下在cmd中输入adb kill-server和adb start-server一般即可解决问题。
对于Ubuntu,有人说是因为USB权限问题,网上有一些修改udev设备文件的方法,如
输入 sudo lsusb 找到自己的USB设备,在/etc/udev/rules.d/目录下找到自己的设备文件,然后添加一段代码。
有人说是端口占用问题,输入lsof -i:5037之后发现下面文字
tony@tony-Aspire-4741:~$ lsof -i:5037
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 20531 tony 197u IPv6 383975 0t0 TCP localhost:59128->localhost:5037 (ESTABLISHED)
adb 23009 tony 5u IPv4 385460 0t0 TCP localhost:5037 (LISTEN)
adb 23009 tony 6u IPv4 385484 0t0 TCP localhost:5037->localhost:59128 (ESTABLISHED)
其中java是由于Eclipse启动自动允许的,输入 sudo kill 20531 之后Eclipse是关闭,并不能解决问题。后来经过笔者尝试,发现最有可能是权限问题。更换管理员权限之后即可解决问题。
tony@tony-Aspire-4741:~$ adb devices
List of devices attached
???????????? no permissions
tony@tony-Aspire-4741:~$ su
Password:
root@tony-Aspire-4741:/home/tony# adb kill-server
root@tony-Aspire-4741:/home/tony# adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
aroot@tony-Aspire-4741:/home/tony# adb devices
List of devices attached
9cb3c160 device
发现设备online 问题解决!