【问题标题】:Android adb not found未找到安卓 adb
【发布时间】:2012-11-14 07:14:07
【问题描述】:

当我从 Eclipse 运行我的 android 应用程序时,我收到了这个错误。

Unexpected exception 'Cannot run program "/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb": error=2 No such file or directory' while attempting to get adb version from /home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb

从 Eclipse 错误中复制粘贴

[2012-11-26 13:43:08 - adb] Unexpected exception 'Cannot run program "/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb": error=2, No such file or directory' while attempting to get adb version from '/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb'

但是,我的 adb 正好在它说不是的位置。

出了什么问题,我该如何解决?

我 cd 进入 adb 所在的目录 (/home/antz/Development/adt-bundle-linux/sdk/platform-tools/) 并输入 adb 并显示

antz@antz-90X3A:~/Development/adt-bundle-linux/sdk/platform-tools$ ls  
aapt  aidl  dexdump  fastboot  llvm-rs-cc  renderscript  
adb   api   dx       lib       NOTICE.txt  source.properties  
antz@antz-90X3A:~/Development/adt-bundle-linux/sdk/platform-tools$ adb  
bash: /home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb: No such file or directory

adb 是绿色的,这意味着它是一个可执行文件,对吗?

例如,dx 也是绿色的,当我在命令提示符中输入 dx 时,它可以工作... adb 有什么问题?

【问题讨论】:

  • 您确定是platform-toolds 而不是platform-tools
  • /home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb 里面有一个不需要的“d”!
  • 对不起,这是我在这篇文章中的错字
  • 你检查过文件/文件夹的权限了吗?您正在使用 linux,请确保您的用户可以实际访问该文件夹并运行 adb

标签: android linux adb


【解决方案1】:

在 Linux 上,包含 adb 的 Android SDK platform-tools 包曾经是 32bit。它在32bit 系统上运行良好。但在64bit 系统上,您需要手动安装 IA32 库。

对于基于 Debian 的发行版,试试这个:

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

但由于 v24.0 platform-tools 仅包含 64bit 二进制文件 - 所以不再需要 32bit 库。

【讨论】:

  • 感谢这使它工作。为什么他们没有在教程中包含这一步?
  • 谷歌确实提供了信息。见developer.android.com/sdk/installing/index.html点击其他平台信息,然后对ubuntu进行故障排除。
  • @RobinChander,有趣的是Linux 64-bit ADT bundleadt-bundle-linux/sdk/platform-tools/adb 下带有一个 32 位 adb ...这在其他发行版下也是一个问题,例如Fedora 17.
  • 我无法安装 IA32 库!为什么?
  • 我得到了同样的错误,然后我做了 apt-get install ia32-libs 但现在如何在 Eclipse 中重新启动 ADT 工具的配置?我正在运行 Ubuntu 12.04
【解决方案2】:

sudo apt install adb

你的电脑没有安装adb

试试这个。

【讨论】:

    【解决方案3】:

    Arch Linux 的正确 current 组合如下::

    [此部分未更改]/etc/pacman.conf中取消注释以下部分:

    ...
    [multilib]
    Include = /etc/pacman.d/mirrorlist
    ...
    

    然后:

    sudo pacman -Syu && sudo pacman -S multilib/lib32-libstdc++5 multilib/lib32-zlib
    

    与其他答案的不同之处在于包名称现在包含 multilib/ 部分。

    (来自 Arch Wiki:Multilib#EnablingAndroid#Troubleshooting

    【讨论】:

      【解决方案4】:

      有时只是为 sdk 文件提供必要的权限。

      sudo chmod -R +x /path/to/android-sdk-linux
      

      重启 Android Studio 看看能否解决。

      当您从 NTFS 分区复制/移动 sdk 文件或从另一台计算机复制时,通常会出现权限问题。

      【讨论】:

        【解决方案5】:

        在 ubuntu 64 位 [12.04]-[14.10] 和 Elementary OS 64 位中

        sudo dpkg --add-architecture i386
        sudo apt-get update
        sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386
        

        【讨论】:

          【解决方案6】:

          来自Ubuntu Multiarch HOWTO

          某些使用 Android SDK 的用户在尝试在 amd64 位平台上运行 build-tools 或 platform-tools 时可能会遇到问题。作为 ia32-libs 的替代品,用户只需安装以下库即可:

          dpkg --add-architecture i386
          aptitude update
          aptitude install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
          

          【讨论】:

            【解决方案7】:

            如果你在 64 位中遇到这个问题,试试这个(对我有用):

            $ apt-get install lib32gcc1 libc6-i386 lib32z1 lib32stdc++6
            $ apt-get install lib32ncurses5 lib32gomp1 lib32z1-dev lib32bz2-dev
            $ apt-get install g++-multilib
            

            http://sixarm.com/about/ubuntu-apt-get-install-ia32-for-32-bit-on-64-bit.html

            【讨论】:

              【解决方案8】:

              我正在使用 Ubuntu 14.04 LTS 64 位,以下代码适合我

              sudo apt-get install lib32z1 lib32z1-dev
              sudo apt-get install lib32stdc++6
              


              概括:

              我尝试了apt-get install ia32-libs,但是apt包工具提示;

              Package ia32-libs is not available, but is referred to by another package.
              This may mean that the package is missing, has been obsoleted, or is only available from another source.
              
              However the following packages replace it:
                lib32z1 lib32ncurses5 lib32bz2-1.0
              

              那么上面的代码对我有用。

              【讨论】:

              • 我尝试了您的解决方案,但问题仍然出现在我身上。
              • 为 Ubuntu 16 工作
              【解决方案9】:

              在下面运行这些命令。它对我有用

              sudo apt-get dist-upgrade
              sudo apt-get install ia32-libs
              

              【讨论】:

                【解决方案10】:

                我在我的 Linux Mint 12 中做到了:

                   chmod +x PATH/adb
                

                【讨论】:

                  【解决方案11】:

                  您无法再安装 ia32-libs,因此您必须安装 adb 所需的各个 32 位库

                  sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
                  

                  对于 Ubuntu 13.10:

                  sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
                  

                  【讨论】:

                  • 这是指特定版本的 Linux 吗?如果是这样,你能把它放在你的答案中吗?
                  • 注意:如果安装失败(坏依赖)尝试安装它抛出 aptitude。建议您降级一些库,以便安装成功。
                  • 我还需要安装 lib32z1 (Ubuntu 13.10)
                  • E:包'lib32stdc++6'没有安装候选E:包'lib32gcc1'没有安装候选E:找不到包lib32ncurses5
                  • 是的,非常感谢 :) 在 ubuntu 13.10 上工作得很好
                  【解决方案12】:

                  我正在运行 Ubuntu 12.04 LTS,这个命令是唯一对我有用的东西:

                  sudo apt-get install lib32z1 lib32z1-dev
                  

                  一旦我从命令行运行它,我就可以通过执行 Project > Clean in 来生成要生成的 R.java 文件(表明您的 Android SDK 工具安装中的某些内容不太正确)日食。

                  【讨论】:

                    【解决方案13】:

                    http://abhinavasblog.blogspot.sg/2013/10/working-with-ubuntu-1304-and-1310-java.html

                    该博客解释了 Ubuntu 13.10 安装 Chrome、Java 和修复 Android SDK 的解决方案。

                    【讨论】:

                    • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。只是为了未来,答案已经给出。 See this meta article.
                    【解决方案14】:

                    在 Fedora 17 或 18 上:

                    sudo yum install redhat-lsb.i686
                    

                    【讨论】:

                      【解决方案15】:

                      在 Arch linux 上:

                      在 /etc/pacman.conf 中启用“multiarch”存储库

                      然后运行:

                      root@box#pacman -Syu
                      
                      root@box#pacman -S lib32-glibc lib32-zlib lib32-libstdc++5 lib32-ncurses lib32-gcc-libs
                      

                      【讨论】:

                      • 这对我有用。这是multilib 存储库,但必须启用。
                      【解决方案16】:

                      这在 Ubuntu 13.04 64 位版本中效果很好

                      您无法再安装 ia32-libs,因此您必须安装 adb 所需的各个 32 位库

                      sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
                      

                      【讨论】:

                      • 经过测试。在 13.04 64 位上运行良好。非常感谢:D
                      • 在我的 Ubuntu 14.04 64 位机器上,还自动安装了依赖项 lib32tinfo5。
                      【解决方案17】:

                      您需要安装 ia32-libs(IA32 库)包才能使其工作。

                      【讨论】:

                        【解决方案18】:

                        对于多架构 Debian 7.0,添加:

                        dpkg --add-architecture i386
                        apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
                        

                        【讨论】:

                        • 这似乎与问题无关。
                        • 它有效。但使用 libc6:i386 和 libstdc++6:i386 包就足够了
                        【解决方案19】:

                        你必须安装 32 位 glibc:

                        在 Fedore 64 位机器上

                        # yum install glibc.i686
                        

                        这消除了在尝试执行 32 位二进制文​​件时误导性的“没有这样的文件或目录”消息。这样 64 位 Fedora 系统就可以执行 64 位二进制文​​件了。

                        这也消除了在 32 位动态可执行文件上调用 ldd 时误导性的“不是动态可执行文件”消息。

                        现在您必须安装 adt-bundle-linux/sdk/platform-tools 下的二进制文件所链接的缺少的 32 位库:

                        # yum install zlib.i686 libstdc++.i686 ncurses-libs.i686 libgcc.i686
                        

                        就是这样。

                        【讨论】:

                        • 很高兴看到 Fedora 用户的解决方案!
                        【解决方案20】:

                        在linux中安装这些库apt-get install ia32-libs

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2015-06-22
                          • 1970-01-01
                          • 2018-05-13
                          • 1970-01-01
                          • 2016-03-15
                          • 1970-01-01
                          • 2019-05-06
                          • 2012-05-05
                          相关资源
                          最近更新 更多