Bash找不到adb,即使它肯定存在

时间:2012-06-28 17:41:58

标签: android linux adb

我正在运行ArchLinux,内核3.4.4,bash版本4.2.29。我从这里下载了android sdk:http://developer.android.com/sdk/index.html

提取后,我做了~/android-sdk-linux/tools/android并安装了SDK平台工具包。

从那里我尝试了以下内容:

> ls -l ~/android-sdk-linux/platform-tools/adb 
-rwxr-xr-x 1 mediocregopher mediocregopher 204436 Jun 28 13:20 /home/mediocregopher/android-sdk-linux/platform-tools/adb

> file ~/android-sdk-linux/platform-tools/adb 
/home/mediocregopher/android-sdk-linux/platform-tools/adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

> ~/android-sdk-linux/platform-tools/adb 
bash: /home/mediocregopher/android-sdk-linux/platform-tools/adb: No such file or directory

显然文件就在那里,至少可执行文件,为什么bash似乎无法找到它?我已经尝试将platform-tools文件夹添加到我的路径以及sudo和su-ing,但无论看起来什么样的文件都找不到。有谁知道会发生什么?

2 个答案:

答案 0 :(得分:17)

您运行的是64位系统,并且没有安装32位兼容库。

错误实际上来自于它无法找到32位ld.so

如果您使用的是ubuntu / debian,我认为您只需要sudo apt-get install ia32-libs它就可以了。

答案 1 :(得分:9)

对于'现代' Ubuntu(13.10及更高版本)的版本,已接受的答案不再适用:他们删除了32位兼容性库'而你需要使用彼此相邻的愉快共存的多版本软件包。请参阅AskUbuntu上的What happened to the ia32-libs package?

而是需要安装32位版本的libc

sudo apt-get install libc6:i386

接下来,我遇到libstdc++还需要32位版本的adb

sudo apt-get install libstdc++6:i386

现在adb应该(再次)工作。

Android SDK on a 64-bit linux machine表明还需要其他一些库。我似乎也不需要它们,但可能已经安装了它们。