在fedora环境下配置android开发时遇见adb命令不能运行
我并没用使用google推出的ADT(绑定好的eclipse),而是自己配置ADT插件
在安装好ADT插件并重新启动eclipse是控制台输出了下面的错
eclipse报出异常:
The standalone version of DDMS is deprecated.
Please use Android Device Monitor (tools/monitor) instead.
10:43:42 E/adb: Unexpected exception 'Cannot run program "/application/android-sdk-linux/platform-tools/adb": error=2, 没有那个文件或目录' while attempting to get adb version from '/application/android-sdk-linux/platform-tools/adb'
我用终端切换到 '/application/android-sdk-linux/platform-tools/‘ 目录下(也就是解压SDK-tools包的platform-tools目录下),执行 './adb'命令,显示下面信息:
[zggzcgy@linux platform-tools]$ ll
总用量 1676
-rwxrwxr-x. 1 cgy cgy 1231286 10月 22 23:26 adb
drwxrwxr-x. 2 cgy cgy 4096 10月 22 23:26 api
-rwxrwxr-x. 1 cgy cgy 197589 10月 22 23:26 fastboot
-rw-rw-r--. 1 cgy cgy 251356 10月 22 23:26 NOTICE.txt
-rw-rw-r--. 1 cgy cgy 16648 10月 22 23:26 source.properties
drwxrwxr-x. 2 cgy cgy 4096 10月 22 23:26 systrace
[zggzcgy@linux platform-tools]$ ./adb
bash: ./adb: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
报出在 /lib/' 下的没有 ld-linux.so.2 这个文件(应该是个库),我百度了一下
原来是因为系统的问题,因为我的系统是64位的,那adb这个程序是32位的
[zggzcgy@linux platform-tools]$ file ./adb
./adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
x64位的系统使用x32位就需要刚刚那个库
我用find命令找这个文件,没找到,不过在位以前下载过的android源代码中倒是发现了这个文件
我记得我用Ubutun的时候也遇到过这样的问题,当时位是使用这条命令来解决的
apt-get install ia32-libs
但当我在当前的环境下输入时却输出这样的信息
[root@linux platform-tools]# yum install a32-libs
已加载插件:langpacks, refresh-packagekit
没有可用软件包 a32-libs。
错误:无须任何处理
并没有发现 ‘ia32-libs’ 这个包的存在
內事不知道问百度,外事不知问google
看来百度帮不了位,只好google拉
一搜发现还不小
原来用错包拉,那个在fedora上并没有刚刚所述的包
所以正确的解决办法是这样的
注:需要切换到root权限进行操作
[root@linux lib]# yum install glibc.i686
[root@linux lib]# yum install glibc.i686
已加载插件:langpacks, refresh-packagekit
正在解决依赖关系
--> 正在检查事务
---> 软件包 glibc.i686.0.2.17-18.fc19 将被 安装
--> 正在处理依赖关系 libfreebl3.so(NSSRAWHASH_3.12.3),它被软件包 glibc-2.17-18.fc19.i686 需要
--> 正在处理依赖关系 libfreebl3.so,它被软件包 glibc-2.17-18.fc19.i686 需要
--> 正在检查事务
---> 软件包 nss-softokn-freebl.i686.0.3.15.2-1.fc19 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
glibc i686 2.17-18.fc19 updates 4.2 M
为依赖而安装:
nss-softokn-freebl i686 3.15.2-1.fc19 updates 146 k
事务概要
================================================================================
安装 1 软件包 (+1 依赖软件包)
总下载量:4.3 M
安装大小:15 M
Is this ok [y/d/N]: y
[root@linux platform-tools]# ./adb version
Android Debug Bridge version 1.0.31
还有刚安装的时候如果库没有加完的话还会报下面的错误
[root@linux platform-tools]# ./adb
/Appication/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
遇到这样的问题,只需要安装下面这个就行拉
[root@linux platform-tools]# yum install libstdc*
[root@linux platform-tools]# yum install libstdc++.so.6
输入y确认安装就可以了
adb命令就能用了,然后重启eclipse就能正常使用拉,
折腾我一上午,原来这么简单,唉,不愧是初学者啊!
参考资料:http://stackoverflow.com/questions/13571145/android-adb-not-found