首先确保用数据线链接后能识别设备,输入:lsusb,可以看到类似输出
dorole@ubuntu:~$ lsusb
Bus 002 Device 006: ID 0bb4:0c87 High Tech Computer Corp.
Bus 002 Device 004: ID 0402:9665 ALi Corp.
Bus 002 Device 003: ID 04fc:05da Sunplus Technology Co., Ltd
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0951:1643 Kingston Technology
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
这样手机的vendor id和描述就出来了,第一条即是,htc的机器硬件id一般都是0bb4。
在/etc/udev/rules.d/目录下建立50-android.rules规则文件,内容如下:
SUBSYSTEM==”usb”, ATTR{idVendor}==”0bb4″, MODE=”0666″
修改后重启udev服务
dorole@ubuntu:/$ sudo /etc/init.d/udev restart
切换到android sdk的platform-tools目录下,重启adb服务,再输入adb devices就应该能找到设备了。
dorole@ubuntu:~/android-sdk-linux_x86/platform-tools$ sudo ./adb kill-server
dorole@ubuntu:~/android-sdk-linux_x86/platform-tools$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
dorole@ubuntu:~/android-sdk-linux_x86/platform-tools$ sudo ./adb devices
List of devices attached
SH0CDPL00575 device
这样就可以在eclipse中的DDMS来调试android真机了,有些步骤是需要root权限的。
在Ubuntu下解决 adb devices :???????????? no permissions 方法
(1)sudo adb kill-server
sudo adb devices
OK
或者
以前在模拟器上跑程序,这一次小组好不容易整了个G3,为了证明自己的Android没有白浪费时间自学,写了个“hello,walfred”,编译生成apk,可是通过usb连接上电脑却出现问题。
使用adb devices 出现如下:
List of devices attached
???????????? no permissions
同时在DDMS中显示设备名也显示????????????,也无法显示进程名,无法查看log。
解决方法:
1、设置usb权限
因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。
运行命令,重启udev:
$sudo chmod a+rx /etc/udev/rules.d/50-android.rules
$sudo service udev restart
2、不需要重启计算机,重新启动adb server下就ok
(很重要)拔掉usb重新连上再执行:
sudo ./adb kill-server
./adb devices
./adb root (这一步很重要 )
goodkuck