【问题标题】:Bash cannot find adb even though it's definitely thereBash 找不到 adb,即使它确实存在
【发布时间】:2012-06-30 07:04:01
【问题描述】:

我正在运行 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 添加到我的路径中,但无论看起来如何,都找不到该文件。有谁知道会发生什么?

【问题讨论】:

    标签: android linux adb


    【解决方案1】:

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

    这个错误实际上是因为它找不到32位ld.so

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

    【讨论】:

    • +1 这是来自 execve(2) 的 ENOENT 不太常见的原因
    • 这最终成为了问题。我在 Arch 的 AUR 中找到了 android-sdk 但无法安装它,因为它需要一堆 lib32-* 包。原来我只需要启用 multilib repo。感谢您为我指明正确的方向:)
    • Installing the Android SDK 在“Ubuntu 故障排除”下对此进行了解释。
    【解决方案2】:

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

    您需要安装 32 位版本的 libc:

    sudo apt-get install libc6:i386
    

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

    sudo apt-get install libstdc++6:i386
    

    现在adb 应该可以正常工作了(再次)。

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

    【讨论】:

    • +1,这个解决方案还帮助我在 64 位系统上安装 Anaconda 32 位
    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多