64 位 Linux 机器上的 Android SDK
Posted
技术标签:
【中文标题】64 位 Linux 机器上的 Android SDK【英文标题】:Android SDK on a 64-bit linux machine 【发布时间】:2011-02-12 05:19:13 【问题描述】:是否可以在 64 位 linux 机器上使用 android SDK 进行开发。可用的 SDK 下载似乎仅适用于 32 位版本的 Linux。
【问题讨论】:
【参考方案1】:在 (K)Ubuntu 上,您需要以下 32 位软件包:
sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
要运行模拟器,您需要额外的软件包:
sudo apt-get install libsdl1.2debian:i386
【讨论】:
非常感谢您的回答,您使我的计算机免于安装 ia32-libs(建议随处可见),它与您提到的软件包一起带来了其他无用的依赖项。您的解决方案适用于我的 Linux Mint 13。 同意上面的评论,ubuntu 12.04 64bit 适用于我的 Ubuntu 12.10 64 位。非常感谢! Ubuntu 13.04 64 位仍然存在与 ADT SDK 相同的问题,并且该解决方案在那里也适用于我。 也适用于 Ubuntu 14.04 64 位。穆哈斯·格拉西亚斯!【参考方案2】:是的,是的。您需要安装 ia32 库。查看Ubuntu Linux troubleshooting section。
apt-get install ia32-libs
apt-get install sun-java6-jdk
【讨论】:
ia32-libs 不会安装在我的机器上。请参阅下面 notz 的答案。 这仅适用于未引入 Multiarch 支持的 Ubuntu 版本。现在正确的做法是to install the right i386 packages 具有讽刺意味的是,“正确”的答案只对运行 Ubuntu/Gnome 的那部分 64 位机器是正确的。 Linux 的碎片表明“正确”的答案是一个更普遍的答案,或者是以下所有部分正确答案的组合。我个人更喜欢更笼统的答案,因为有太多可能的变化和更新来确保完整性和不会过时。我的投票将是一个不错的“是的,这是可能的。RTFM 并安装 32 位/i386 软件包。”,风格供应商中立的答案。仅供参考 - 他们不会修复它,因为他们希望我们改用 Android Studio。 此链接上不再有故障排除部分,这将转到当前安装说明:developer.android.com/studio/install.html 在右上角的平台选择框中选择“linux”。【参考方案3】:Android SDK 要求:
Fedora 17 64bit with Android SDK:
sudo yum install glibc.i686 zlib.i686 libstdc++.i686 ncurses-libs.i686
Fedora 20 64bit with Android SDK
sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb
【讨论】:
感谢 Fedora 提供的具体信息。官方帮助只列出了 ubuntu 包 当我第一次尝试这个时,我得到了“错误:受保护的多库版本:libstdc++-4.7.2-2.fc17.i686 != libstdc++-4.7.0-5.fc17.x86_64”。用 yum upgrade libstdc++ 修复 用于 fedora 17 的命令行仍然适用于 fedora 21 @MariuszS,在第二种情况下,您能否阐明“64 位 Android SDK”的含义。我的理解是 Android SDK 有 32 位二进制文件,这就是我们首先遇到这个问题的原因。 我不确定,但可能前一段时间有两个版本(可能与 eclipse 64bit 捆绑在一起)。答案已更新【参考方案4】:对于 Debian Wheezy,您必须启用 multiarch,然后安装其他答案中列出的依赖库或工具或平台工具中的二进制文件需要目录:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
如需进一步的库,请使用 ldd 检查引用的 .so 文件。
平台工具$ ldd adb linux-gate.so.1 => (0xf77bb000) librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000) libncurses.so.5 => 未找到 libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000) libstdc++.so.6 => 未找到 libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf775b000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf773e000) libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf75db000) libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf75d6000) /lib/ld-linux.so.2 (0xf77bc000)所以继续安装libncurses5:i386和libstdc++6:i386才能运行
平台工具$ ./adb Android 调试桥版本 1.0.31 ...【讨论】:
谢谢@user2255304!这对我有用。试图安装 Android Studio,android-studio/sdk/tools/mksdcard
是 32 位可执行文件。按照上述步骤安装libc6:i386
和libstdc++6:i386
。二进制文件现在工作正常。【参考方案5】:
对于 Ubuntu 13.1,ia32-libs 不再可用。所以,你可以试试这个:
sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
【讨论】:
这些软件包名称也适用于 Ubuntu 14.04。在我看来,这似乎是“正确”的方法,因为这些包来自 amd64 架构存储库。较早的评论建议安装 :386 包混合架构包,这似乎有风险。 @DonPark 不,这没有风险。它被称为多架构。【参考方案6】:在 CentOS 6.2 上,我可以使用以下功能:
yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686
【讨论】:
也可以在 CentOS 7 上运行!【参考方案7】:对于 Ubuntu AMD64:http://blog.jayway.com/2009/10/21/getting-android-sdk-working-on-ubuntu-64/
【讨论】:
【参考方案8】:对于那些正在使用 Slackware 的人click here.
我用电流试了一下,效果很好。
简而言之,你需要通过安装multilib包来启用32位支持。
步骤:
1) 下载包:
> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/
2) 安装包:
~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"
3) 安装兼容包:
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"
重启系统,瞧。
【讨论】:
【参考方案9】:对于 openSUSE,您可以安装 32 位模式包
su zypper install -t pattern 32bit
【讨论】:
【参考方案10】:在 Ubuntu 13.10 上
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
【讨论】:
【参考方案11】:您可以自己构建 sdk。 我会尝试。 32位版本很慢。
【讨论】:
【参考方案12】:假设:已安装Android SDK 32位版本
在我的 Ubuntu 12 64 位操作系统上,我不必安装前面 cmets 中提到的任何软件包。使用Android SDK Manager
安装以下内容 -
在Tools
下:Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools
在最新的 Android API 下(在我的例子中,Android 4.3 (API 18)
):SDK Platform
ARM EABI v7a System Image
Extras
下:Android Support Library
警告 - 我之前曾尝试使用 ia32-libs
包。它安装成功,我能够运行我的 Android 应用程序。但是,如果我重新启动机器,它永远不会启动。因此,我建议不要安装ia32-libs
包。如果它对你有用,那就太好了。也许这是一个仅限于我的电脑的问题。
【讨论】:
【参考方案13】:对上述问答稍作改动:我在 64 位 System76 笔记本电脑上运行 Debian Wheezy (7.0),我已经启用了多架构,并且大多数原生 Android 工具似乎运行良好......直到我尝试构建一个应用程序。构建失败,因为需要其中一个资源实用程序(32 位)libz.so.1。
apt-get 安装 lib32z1
...帮我修好了。
【讨论】:
【参考方案14】:对于 AWS Linux,我在 the old AWS Forum post 中找到了解决方案。
sudo yum install mesa-libGL.i686 libXrender.i686 libSM.i686 freetype.i686 libstdc++.i686
【讨论】:
【参考方案15】:对于 Arch 用户: 您必须安装 Multilib 存储库中的 lib32-gcc-libs 和 lib32-ncurses 软件包。 (你必须enable)
pacman -S lib32-gcc-libs
pacman -S lib32-ncurses
【讨论】:
“找不到包”以上是关于64 位 Linux 机器上的 Android SDK的主要内容,如果未能解决你的问题,请参考以下文章
64位 regsrv win10_Regsvr32 在64位机器上的用法
64位 regsrv win10_Regsvr32 在64位机器上的用法
Windows 2008 R2 64 位机器 (Tridion 5.3) 上的 ComponentPresentationAssembler 错误