Bash不能findadb,即使它确实存在

我正在运行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 

显然,文件是在那里,至less可执行文件,为什么不能bash似乎find它? 我已经尝试将platform-tools文件夹添加到我的path以及sudo和su-ing中,但不pipe文件看起来如何。 有谁知道会发生什么?

您在64位系统上运行,并且没有安装32位兼容性库。

这个错误实际上是来自它找不到32位ld.so的事实。

如果你使用Ubuntu / Debian,我想你只需要sudo apt-get install ia32-libs ,它应该工作。

对于“现代”版本的Ubuntu(13.10和更高版本),接受的答案已经不再适用了:他们删除了“32位可压缩库”,而是需要使用可以彼此相邻共存的多层包。 看看ia32-libs包发生了什么? 在AskUbuntu上。

相反,你需要安装32位版本的libc

 sudo apt-get install libc6:i386 

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

 sudo apt-get install libstdc++6:i386 

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

在64位Linux机器上的Android SDK显示还需要其他一些库。 我似乎并没有要求他们,但可能已经安装了他们。