97
votes

Is it possible to develop using the Android SDK on a 64-bit linux machine. The available SDK downloads seem to be just for 32-bit versions of Linux.

15

15 Answers

182
votes

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
42
votes

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
34
votes

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
    
16
votes

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
...
9
votes

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

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
5
votes

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

4
votes

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.

1
votes

For openSUSE you can install the 32bit pattern package

su zypper install -t pattern 32bit

1
votes

On Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

0
votes

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

0
votes

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.

0
votes

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.

0
votes

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

0
votes

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