找不到Android ADB


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恰好在它说不存在的位置。

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

我进入了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-tooldsplatform-tools
拉加夫·苏德

/ home / antz / Development / adt-bundle-linux / sdk / platform-toolds / adb那里是不需要的“ d”!
petey 2012年

对不起这就是这个帖子上一个错字由我
ealeon

您是否检查了文件/文件夹的权限?您正在使用linux,请确保您的用户可以实际访问该文件夹并运行adb
WarrenFaith 2012年

Answers:


143

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

对于基于Debian的发行版,请尝试以下操作:

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

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


谢谢这使它工作。他们为什么不将此步骤包括在教程中?
ealeon

4
Google确实提供了信息。请参阅developer.android.com/sdk/installing/index.html 单击其他平台的信息,然后对ubuntu进行故障排除。
罗宾·钱德

5
@RobinChander,有趣的是,Linux 64位ADT束带有一个32位ADB下adt-bundle-linux/sdk/platform-tools/adb...这也是在其他分布的问题,例如Fedora的17
maxschlepzig

5
我无法安装IA32库!为什么?
gtr123

1
我遇到了同样的错误,然后我进行了apt-get install ia32-libs的安装,但是现在我该如何在eclipse中重新启动ADT工具的配置?我正在运行Ubuntu 12.04
CodeKingPlusPlus,2013年

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

这是指Linux的特定版本吗?如果是这样,您能否将其放入答案中。
CatShoes

注意:如果安装失败(依赖关系不佳),请尝试安装以抛出该问题。建议您降级某些librares,以便安装成功。
Ben Usman

4
我还需要安装lib32z1(Ubuntu 13.10)
AntonS 2013年

E:软件包“ lib32stdc ++ 6”没有安装候选程序E:软件包“ lib32gcc1”没有安装候选程序E:无法找到软件包lib32ncurses5
数字水喉匠

是的,非常感谢:)在Ubuntu 13.10上工作很棒
Aukhan 2014年

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

而已。


3
很高兴为Fedora用户找到解决方案!
凯尔2013年

24

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

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

然后上面的代码为我工作。


我尝试了您的解决方案,但问题仍然存在。
tvshajeer

1
为Ubuntu 16工作
-Abduhafiz

9

这在Ubuntu 13.04 64bit版本中很好用

您不再可以安装ia32-libs,因此必须使用adb所需的单个32位库

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

经过测试。在13.04 64bit上运行良好。非常感谢:D
Blaze Tama

在我的Ubuntu 14.04 64位计算机上,还自动安装了依赖项lib32tinfo5。
faizal

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

这对我有用。这是multilib必须启用的存储库。
paldepind 2014年

4

我正在运行Ubuntu 12.04 LTS,此命令对我唯一有效:

sudo apt-get install lib32z1 lib32z1-dev

从命令行运行该代码后,我可以通过在Eclipse中执行“项目”>“清理”来生成R.java文件来生成(表明您的Android SDK工具安装中的某些东西不太正确的迹象)。


3

对于多体系Debian 7.0,添加:

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

2
这似乎与问题无关。
深奥的屏幕名称

有用。但这对于libc6:i386和libstdc ++ 6:i386软件包就足够了
Jorge Sainz 2014年

3

在Fedora 17或18上:

sudo yum install redhat-lsb.i686




2

Ubuntu Multiarch HOWTO中

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

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

1

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


1

在下面运行这些命令。它为我工作

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

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

1

有时,只需给sdk文件必要的权限即可。

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

重新启动Android Studio,看看是否可以解决。

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



0

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

该博客向Ubuntu 13.10解释了用于安装Chrome,Java和Fixing Android SDK的解决方案。


鼓励链接到外部资源,但是请在链接周围添加上下文,以便您的其他用户会知道它是什么以及为什么在那里。如果目标站点无法访问或永久脱机,请始终引用重要链接中最相关的部分。只是为了将来,答案已经给出。请参阅此元文章。
Johannes Stadler 2014年

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.