13

尝试adb在 Ubuntu 12.10、x86_64 上运行时遇到以下问题:

[2013-02-19 20:56:04 - adb] Unexpected exception 'Cannot run program 
"/home/user/adt-bundle-linux-x86_64/sdk/platform-tools/adb": error=2, 
No such file or directory' while attempting to get adb version from 
'/home/user/adt-bundle-linux-x86_64/sdk/platform-tools/adb'

我找到了 adb,试过chmod +x adb了,但它不起作用。我也试过。之后我尝试了chmod +x platform-tools/chmod +x tools/./adb

我已经用谷歌搜索了这个问题。他们在谈论 ia32 包。Ubuntu 找不到那个包,也找不到 ia32 多架构。

系统是 Ubuntu 12.10 64,我下载了 adt-bundle-linux-x86_64.zip 包并解压。

我究竟做错了什么 ?谢谢!

4

5 回答 5

19

在 Debian 7 上,我遇到了同样的问题。

诊断:

edb@lapelidb:~/today$ ldd /opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb
    not a dynamic executable
edb@lapelidb:~/today$ file  /opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb
/opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

解决方案:添加对 32 位支持和所需 32 位库的支持:

edb@lapelidb:~/today$ sudo dpkg --add-architecture i386
edb@lapelidb:~/today$ sudo apt-get update 
edb@lapelidb:~/today$ sudo apt-get install libc6:i386 libstdc++6:i386

瞧:

edb@lapelidb:~/today$ ldd /opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb
    linux-gate.so.1 =>  (0xf772a000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf770a000)
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7706000)
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf76ec000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7600000)
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75da000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75bd000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf745a000)
    /lib/ld-linux.so.2 (0xf772b000)
于 2013-09-07T15:25:35.480 回答
9

我使用的是 Ubuntu 12.04 LTS 版本。我已经尝试了“amo-ej1”建议的步骤,但我的“dpkg”没有“添加”或“架构”选项。

但是,以下内容对我有用:

1) 安装以下第三方 PPA 提供的“adb”和“fastboot”。

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot

2)将官方Android SDK提供的'adb'和'fastboot'的副本替换为从上述步骤安装的那些:

cp /usr/bin/adb <path-to-your-adt-sdk-package>/sdk/platform-tools/adb
cp /usr/bin/fastboot <path-to-your-adt-sdk-package>/sdk/platform-tools/fastboot

3)重新启动(重新执行)你的eclipse二进制文件。

完整学分: http ://www.webupd8.org/2012/08/install-adb-and-fastboot-android-tools.html

重要编辑(替代解决方案):

虽然上面可以解决您的错误(并且您可以继续使用 Android App 教程),但正如我发现的那样,ADT 还需要位于以下位置的“aapt”(另一个 32 位二进制文​​件):

 <path-to-your-adt-sdk-package>/sdk/build-tools/android-x.x/

不幸的是,我上面提供的链接没有提供这个二进制文件。

所以,这是我的另一个解决方案:

1) 更新您的系统

Open 'Update Manager' => 'Settings' => 'Updates
Check "Recommended Updates (precise updates)"
Update the updates that are being shown

2) 安装 ia32-libs

sudo apt-get install ia32-libs

我终于能够安装'ia32-libs'。要知道为什么'ia32-libs'不会首先安装,请在此处阅读'slangasek'发布的答案: https ://askubuntu.com/questions/136394/cannot-install-ia32-libs

于 2013-09-30T19:21:17.180 回答
5

Ubuntu 12.10 x86_64 上,运行 32 位的包ia32-libs和 ia32-libs-multiarch。

如果你输入

file adb

您会看到 adb 是 64 位系统上的 32 位文件。您需要 ia32 包来模拟和运行此文件。但你不能!

现在的问题是您无法下载这些软件包,他们正试图将其转换为我猜 x86_64 的东西。在这里,您可以在包 NEWS 中阅读有关转换的信息:

转换摘要:

“ia32-libs (20090808ubuntu27) 精确;紧迫性=低

  • ia32-libs 现在是一个依赖于 ia32-libs-multiarch 的过渡包,这是一个仅 i386 的包,它依赖于以前包含在 ia32-libs 本身中的所有 32 位库包。因此,ia32-libs 将在精确周期内的一段时间内卸载,而依赖库更新为可使用 multiarch 共同安装。鼓励开发人员帮助完成这些库的转换过程,如下所述:

    http://wiki.debian.org/Multiarch/Implementation

    ——史蒂夫·朗加塞克“

因此,如果您尝试编辑 source.list 文件以从较旧的 repo 中获取它,您将破坏包。所以 ubuntu 12.10 的人必须等待或 adb 被编译或任何 64 位。

编辑:

Debian 7.0 将支持 x64 版本可以运行 x32 二进制文件的多架构。来源: http: //www.debian.org/News/2013/20130504

于 2013-02-20T16:39:07.047 回答
0

我使用 debian_x64

添加 i386 库

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

ldd /home/yourname/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb

当你发现“android-sdks/build-tools/17.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory”</p>

你可以试试 sudo apt-get install ia32-libs sudou apt-get install zlib.i686

重新启动计算机并重试

于 2013-12-17T01:26:11.207 回答
-1

用这个解压缩该文件:

sudo tar xvfz adt-bundle-linux-x86.zip -C /opt/android

比运行该代码:

sudo chown -R your_user_name /opt/android

我认为它会起作用

于 2013-02-20T06:26:56.917 回答