今天又遇到了这个问题,再继续研究下。。。请教了同事。。。
因为我的手机在ubuntu11.10上总是不显示,显示问号:??? 还有unknown,然后查了下解决办法,需要用到adb命令,但是我没有配置adb命令,开始配置。对了,中间使用vim命令的时候,没装,又马上装了下vim,比vi太好用了,vi就是个粑粑。
Ubuntu 环境变量的配置
在Ubuntu上用Android的adb工具发现环境变量有问题,就从网上看了会Linux下环境变量的配置,对其环境变量的配置文件有所了解,这里单说一下可以配置环境变量的文件:
1. /etc/profile:首先是全局的,适用于所有的shell;在登录时,操作系统配置用户首选项使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行用于设置shell,可以在这里配置环境变量。
2. /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,配置文件系统环境。 我一般在这里设置一些全局的变量,Ubuntu默认PATH在这个文件中,我就把adb的路径放到这里了。(PS:以上两项修改需要重启)
3. ~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
4.~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
常用的一些命令:
echo : echo $PATH 可以用来显示环境变量
export :设置一些环境变量 export PATH="$PATH:/my_new_path"
env : 显示所有的环境变量
set : 显示所有本地定义的Shell变量
unset : 清楚环境变量 unset $PATH
readonly : 设置只读变量 readonly PATH
配置adb环境变量
1、配置环境变量
sudo vi ~/.bashrc
2 |
export PATH=$PATH:~/android-sdk-linux/tools/ |
3 |
export PATH=$PATH:~/android-sdk-linux/platform/ export PATH=$PATH:~/android-sdk-linux/platform-tools #现在的adb命令在这个路径下 |
2、保存后,同步更新
source ~/.bashrc
3、直接运行adb的话会显示
adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
???????????? no permissions
没有权限
4、关闭adb服务,切换到root,重启adb服务,离开root
adb kill-server
sudo /home/m/android-sdk-linux/platform/adb start-server
现在即可使用adb了
下面解决办法新建的文件名称是:51-android.rules
在eclipse下调试时发现找到的设备为'Unknow',很明确,系统不识别该设备,在官网有解决方法:http://developer.android.com/guide/developing/device.html#setting-up,全是E文,这里我就写写做个备案:
系统环境:ubuntu11.10
开始工作
1)在如下位置建立如下文件:“/etc/udev/rules.d/51-android.rules”
2)确保android设备已经与电脑连接,在Terminal输入lsusb,会出现设备的信息如
”Bus 001 Device 004: ID 18d1:0002 Google Inc. “
找到该信息并找到”ID“字段信息加入第3步中。
3)在”51-android.rules
“文件中添加如下信息
SUBSYSTEM==”usb”, SYSFS{“Google Inc. ”}==”18d1″, MODE=”0666″
4) 运行以下命令:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
sudo /etc/init.d/udev restart
5) 在 android sdk 的platform-tools 目录下运行 (这一步很重要,必须要sudo)
sudo ./adb kill-server
sudo ./adb devices
还有可供参考的文章:
http://my.oschina.net/u/183622/blog/56990
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
上面是一种解决device不显示的办法,还有一种,同事帮我解决的,肯定能解决的办法,如下:
sudo vim /etc/udev/rules.d/70-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0cd6",MODE="0666"
上面是同事帮我解决时新建的文件名:70-android.rules,和下面在网上搜的解决办法并不一样,网上的新建的文件名为51-android.rules.后来我又仔细看了看,有几点不同:
/etc/udev/rules.d/70-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c86",MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0cba",MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="dddd",MODE="0666"
而51-android.rules中的内容是:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="dddd",MODE="0600" OWNER="<username>"
不知道各位看出区别没有:ATTR么有S,MODE的值一个是0666,一个是0600,51里面最后没有OWNER这个内容。真怪了,就这么点差别,就是不行。
待续。。。