103

当我从 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 有什么问题?

4

20 回答 20

143

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

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

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

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

于 2012-11-26T18:57:01.883 回答
112

您不能再安装 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
于 2013-04-06T03:57:47.463 回答
30

您必须安装 32 位 glibc:

在 Fedore 64 位机器上

# yum install glibc.i686

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

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

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

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

而已。

于 2013-04-01T16:04:04.490 回答
24

我正在使用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 tool 建议这样做;

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

然后上面的代码对我有用。

于 2014-06-11T15:49:00.513 回答
9

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

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

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
于 2013-06-26T17:54:59.320 回答
8

在 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
于 2013-07-22T15:06:31.567 回答
4

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

sudo apt-get install lib32z1 lib32z1-dev

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

于 2014-01-11T04:07:34.743 回答
3

在 Fedora 17 或 18 上:

sudo yum install redhat-lsb.i686
于 2013-04-14T04:44:59.510 回答
3

对于多架构 Debian 7.0,添加:

dpkg --add-architecture i386
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
于 2013-06-21T22:01:17.263 回答
2

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

   chmod +x PATH/adb
于 2014-03-18T05:03:59.063 回答
2

如果你在 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

于 2014-09-20T01:06:33.037 回答
2

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

于 2013-06-30T01:23:17.057 回答
2

来自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
于 2014-09-26T14:21:03.713 回答
1

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

于 2012-12-13T11:40:54.140 回答
1

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

sudo apt-get dist-upgrade
sudo apt-get install ia32-libs
于 2013-07-22T10:11:30.640 回答
1

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

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

重新启动 Android Studio 并查看是否可以修复它。

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

于 2015-11-09T13:49:09.220 回答
1

sudo apt install adb

adb 没有安装在你的电脑上

尝试这个。

于 2016-08-12T09:21:54.587 回答
1

在 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
于 2015-08-25T23:40:27.267 回答
0

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

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

于 2013-10-22T03:43:20.747 回答
0

Arch Linux的正确当前组合如下:

[此部分未更改]取消注释以下部分/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

于 2016-03-30T13:32:17.133 回答