Ubuntu 64与Android 64 Bundle无法找到adb可执行文件

myt*_*mer 13 ubuntu android

尝试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'
Run Code Online (Sandbox Code Playgroud)

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

我为这个问题搞定了.他们在谈论ia32包.Ubuntu无法找到那个包,也无法找到ia32 multi arch.

系统是Ubuntu 12.10 64,我下载了adt-bundle-linux-x86_64.zip包,只需将其解压缩即可.

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

amo*_*ej1 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
Run Code Online (Sandbox Code Playgroud)

解决方案:添加对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
Run Code Online (Sandbox Code Playgroud)

等瞧:

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)
Run Code Online (Sandbox Code Playgroud)


Roc*_*nde 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

 <path-to-your-adt-sdk-package>/sdk/build-tools/android-x.x/
Run Code Online (Sandbox Code Playgroud)

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

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

1)更新您的系统

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

2)安装ia32-libs

sudo apt-get install ia32-libs
Run Code Online (Sandbox Code Playgroud)

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


myt*_*mer 5

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

如果你输入

file adb
Run Code Online (Sandbox Code Playgroud)

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

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

转换摘要:

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

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

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

    - Steve Langasek"

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

编辑:

Debian 7.0将支持multiarch,其中x64版本可以运行x32二进制文件.来源:http://www.debian.org/News/2013/20130504