如何使 Android 的 aapt 和 adb 在没有 ia32-libs 的 64 位 Ubuntu 上工作(适用于版本 12、13 和 14)
Posted
技术标签:
【中文标题】如何使 Android 的 aapt 和 adb 在没有 ia32-libs 的 64 位 Ubuntu 上工作(适用于版本 12、13 和 14)【英文标题】:How to make Android's aapt and adb work on 64-bit Ubuntu without ia32-libs (works for versions 12, 13 and 14) 【发布时间】:2013-10-31 15:44:28 【问题描述】:由于 Ubuntu 13.10 不再具有 ia32-libs,我无法在全新安装的 13.10 上运行我的 android 开发环境。
错误是~/android-studio/sdk/build-tools/android-4.2.2/aapt": error=2, No such file or directory
这个文件确实存在并且是可执行的,但它是一个 32 位的可执行文件。
在之前的安装中,我刚刚安装了 ia32-libs 来解决此问题,但此解决方案不再适用于 Ubuntu 13.10。
我已经尝试过 askubuntu 问题提出的解决方案,例如。这个https://askubuntu.com/questions/107230/what-happened-to-the-ia32-libs-package
但这对我不起作用。 从 askubuntu.com 的回答中,我看到我应该使用
安装单独的软件包sudo apt-get install package:i386
但我不知道要安装哪些软件包才能使 android 工具再次工作。
有没有其他人解决过这个问题,或者有没有人有需要为 android 工具安装的软件包列表?
【问题讨论】:
【参考方案1】:另一种方式(不添加i386架构)...
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
sudo apt-get install lib32z1
参考:Fix Android adb on Ubuntu 13.10 64bit
【讨论】:
这在 13.10 中可能仍然有效。但是发行版维护者不同意 Adam 关于这个解决方案的“清洁度”。毕竟 ia32-libs 只是一个临时修复,直到实现了适当的多架构支持。 E:包'lib32stdc++6'没有安装候选E:包'lib32gcc1'没有安装候选E:找不到包lib32ncurses5 请使用 Alex P. 的解决方案,这样会更好。 @Gerhard Burger:为什么? @jul 以 libc6-i386 为例。在终端中尝试apt-cache show libc6-i386
,然后查找Architecture:
行。如您所见,它是 64 位包源中的 32 位二进制文件。现在,如果您执行apt-cache show libc6:i386
,您可以看到它是 32 位包源中的 32 位二进制文件(您所期望的),您还可以看到 multiarch 标志,如果您要安装它,它将替换libc6-i386
。【参考方案2】:
虽然在当前版本的 Ubuntu (13.10) 中不需要 dpkg --add-architecture i386
命令,但在当前的 Debian 版本 (7.x) 中需要它,并且在未来的 Ubuntu 版本中也将需要它。所以我打算把它留在里面。对于 Ubuntu 13.10,请忽略它。
sudo dpkg --add-architecture i386
sudo apt-get -qqy update
sudo apt-get -qqy install libncurses5:i386 libstdc++6:i386 zlib1g:i386
更新:aapt
确实需要zlib
,所以我将它添加到列表中。但是你应该不需要任何lib32
包。
【讨论】:
我需要添加 sudo apt-get install lib32stdc++6 lib32z1 才能使其正常工作。这里有一些链接,google+ thread 和 askubuntu thread【参考方案3】:这只是给 sdk 文件必要的权限。
sudo chmod -R +x /path/to/android-sdk-linux
重启 Android Studio 看看能否解决。
当您从 NTFS 分区复制/移动 sdk 文件或从另一台计算机复制时,通常会出现权限问题。
【讨论】:
【参考方案4】:在 Ubuntu 14.04 LTS x64 和 buildToolsVersion 21/22 上执行以下操作就足够了:
sudo apt-get install libc6:i386 libstdc++6:i386
sudo apt-get install zlib1g:i386
我得到的错误:
Execution failed for task ':core:processReleaseResources'.
> A problem occurred starting process 'command '/home/user/androidSDK/android-sdk/build-tools/21.1.2/aapt''
【讨论】:
【参考方案5】:安装 13.04 ia32-libs (raring ringtail)
说明:http://bisonf.wordpress.com/2013/10/19/ubuntu-13-10-how-to-properly-install-ia32-libs-and-ia32-libs-multiarch/
【讨论】:
粘贴完整的解决方案,而不是仅仅提供一个链接。 您想要发布完整解决方案的原因是您的链接可能(并且可能会在某个时候)失效,尽管它可能看起来重复。那时,您的答案毫无价值,因为它没有内容。看到这个Stack Exchange help article。以上是关于如何使 Android 的 aapt 和 adb 在没有 ia32-libs 的 64 位 Ubuntu 上工作(适用于版本 12、13 和 14)的主要内容,如果未能解决你的问题,请参考以下文章
如何用adb shell 指令获得android当前的activity
已解决mac上appium报错:“Could not find aapt Please set the ANDROID_HOME environment variable with the And(代