我正在运行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,但无论看起来什么样的文件都找不到。有谁知道会发生什么?
答案 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表明还需要其他一些库。我似乎也不需要它们,但可能已经安装了它们。