在Fedora下搞Android开发,虽然也有模拟器,不过有些东西毕竟还是要放到真机上测试才行,比如重力感应、摄像头之类的。本以为配置好开发环境,选择了“USB调试”后插上USB就能顺利以USB调试方式连接电脑进行真机测试。没想到Fedora虽然能检测到我的手机,甚至手机型号,却无法正确被Eclispe识别,从而导致USB调试失败。
Google了一番,遇到这个问题的也不少,但很多都是Ubuntu的解决方法。当然,同为Linux,估计方法都是差不多的。悲剧的是,我又大意了,看来Ubuntu是Ubuntu,Fedora是Fedora,同为Linux,但还是优点不同。失败收场,皇天不负有心人,终于找到线索了:
在Linux下安装Android开发环境并以USB调试方式链接手机进行开发
针对我的Fedora 14和HTC G1,具体做法如下:
1.找到设备号
[liang@localhost ~]$ lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 010: ID 04fc:0003 Sunplus Technology Co., Ltd CM1092 Optical Scroller Mouse
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 008: ID 0bb4:0c02 High Tech Computer Corp. Dream / ADP1 / G1 Phone (Debug)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
看到,G1的ID是“0bb4”
2.新建文件:
[liang@localhost ~]$ sudo gedit /etc/udev/rules.d/50-android.rules
然后在文件中写上以下内容:
SUBSYSTEM=="usb",SYSFS{idVendor}=="0bb4",SYMLINK+="android_adb",MODE="0666",OWNER="liang"
具体每个参数我也不详细说明了,就是那个OWNER自己修改成自己的用户名,还有那个SYMLINK后面的确是“+=”,我没有打错!!!保存后退出。
3.使刚才配置的文件生效:
[liang@localhost ~]$ sudo udevadm control --reload-rules
我自己根据我的情况添加了下面这一步(针对Fedora 14环境):
[liang@localhost ~]$ sudo /etc/init.d/udev-post reload
4.然后到存放adb程序的目录下执行下列命令(我的adb并不是放在tools目录下,而是platform-tools目录下,唉,找了一段时间才找到):
[liang@localhost platform-tools]$ sudo ./adb kill-server
[liang@localhost platform-tools]$ sudo ./adb start-server
走完上面的步骤以后,应该就可以识别到手机了。
设定之前:
[liang@localhost platform-tools]$ sudo ./adb devices
List of devices attached
???????????? no permissions
设定之后:
[liang@localhost platform-tools]$ sudo ./adb devices
List of devices attached
HT93FLD01220 device
HT93FLD01220就是我的HTC G1了。