64位 Linux 机器上的 Android SDK

是否有可能在64位 Linux 机器上使用 Android SDK 进行开发。可用的 SDK 下载似乎只适用于32位版本的 Linux。

79027 次浏览

Yes, it is. You need to install the ia32 libraries. Check out the Ubuntu Linux troubleshooting section.

apt-get install ia32-libs
apt-get install sun-java6-jdk

You can build sdk yourself. I will try. The 32-bit version is very slow.

Android SDK requires:

  • 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
    

On (K)Ubuntu you need following 32-bit packages:

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

for running the emulator you need that additional package:

sudo apt-get install libsdl1.2debian:i386

On CentOS 6.2 I got it working with the following:

yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686

For openSUSE you can install the 32bit pattern package

su zypper install -t pattern 32bit

For Debian Wheezy you have to enable multiarch and then install the dependent libraries as listed in the other answers or as needed by the binaries from the tools or platform-tools directory:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386

For further libs check with ldd for referenced .so-files.

platform-tools$ ldd adb
linux-gate.so.1 =>  (0xf77bb000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000)
libncurses.so.5 => not found
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000)
libstdc++.so.6 => not found
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)

So continue to install libncurses5:i386 and libstdc++6:i386 to be able to run

platform-tools$ ./adb
Android Debug Bridge version 1.0.31
...

For those who are using Slackware click here.

I tried it with current and it works.

In short, you need to enable 32bit support by installing multilib packages.

Steps:

1) Download the package:

> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/

2) install packages:

~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"

3) install compatibility packages:

~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"

Restart the system and voila.

For Ubuntu 13.1 ia32-libs is not available anymore. So, you can try this one:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

Presumption: Android SDK 32 bit version is installed

On my Ubuntu 12 64 bit OS, I did not have to install any of the packages mentioned in the previous comments. Install the following using Android SDK Manager -
Under Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Under the latest Android API (in my case, Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Under Extras:
Android Support Library

Warning- I had earlier tried using the ia32-libs package. It installed successfully and I was able to run my Android apps. However, if I restarted the machine, it would never boot. Therefore, I suggest refraining from installing ia32-libs package. If it worked for you then great. Maybe it was an issue restricted to my PC then.

On Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

A slight twist on the above Q and A: I'm running Debian Wheezy (7.0) on a 64-bit System76 laptop, I had already enabled multiarch and most of the native Android tools seemed to run fine...until I tried building an app. The build failed because one of the resource utilities needed (a 32-bit) libz.so.1.

apt-get install lib32z1

...fixed it for me.

For AWS Linux, I've found the solution in the old AWS Forum post.

sudo yum install mesa-libGL.i686 libXrender.i686 libSM.i686 freetype.i686 libstdc++.i686

For Arch users:
You have to install the lib32-gcc-libs and lib32-ncurses packages which are in the Multilib repository. (Which you have to enable)

pacman -S lib32-gcc-libs
pacman -S lib32-ncurses