How to make Android's aapt and adb work on 64-bit Ubuntu without ia32-libs (works for versions 12, 13 and 14)

45,752

Solution 1

While dpkg --add-architecture i386 command is not needed in the current version of Ubuntu (13.10), it is required in the current Debian versions (7.x) and it will be required in the future Ubuntu versions as well. So I am going to leave it in. Just ignore it for 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

Update: aapt indeed requires zlib so I added it to the list. But you should not be needing any lib32 packages.

Solution 2

Another way(without adding i386 architecture)...

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
sudo apt-get install lib32z1

Ref: Fix Android adb on Ubuntu 13.10 64bit

Solution 3

It's just a matter giving sdk files the necessary permissions.

 sudo chmod -R +x /path/to/android-sdk-linux

Restart Android Studio and see if that fix it.

Permission issues typically occur when you copy/move sdk files from a NTFS partition or copying from another computer.

Solution 4

On Ubuntu 14.04 LTS x64 and buildToolsVersion 21/22 it was enough to execute the following:

sudo apt-get install libc6:i386 libstdc++6:i386
sudo apt-get install zlib1g:i386

The error I was getting:

Execution failed for task ':core:processReleaseResources'.
> A problem occurred starting process 'command '/home/user/androidSDK/android-sdk/build-tools/21.1.2/aapt''

Solution 5

install 13.04 ia32-libs (raring ringtail)

instructions: http://bisonf.wordpress.com/2013/10/19/ubuntu-13-10-how-to-properly-install-ia32-libs-and-ia32-libs-multiarch/

Share:
45,752
maiatoday
Author by

maiatoday

Updated on July 09, 2022

Comments

  • maiatoday
    maiatoday almost 2 years

    Since Ubuntu 13.10 no longer has ia32-libs I cannot get my android development environment running on a clean install of 13.10.

    The error is ~/android-studio/sdk/build-tools/android-4.2.2/aapt": error=2, No such file or directory

    This file does exist and is executable but it is a 32bit executable.

    In previous installs I just installed ia32-libs to fix this but this solution no longer works for Ubuntu 13.10.

    I have tried solutions proposed by askubuntu questions eg. this one https://askubuntu.com/questions/107230/what-happened-to-the-ia32-libs-package

    but it isn't working for me. From that askubuntu.com answer I see I should install separate packages with

    sudo apt-get install package:i386 
    

    but I don't know which packages to install to make the android tools work again.

    Has anyone else solved this problem and or does anyone have a list of packages which need to be installed for the android tools?

  • maiatoday
    maiatoday over 10 years
    I needed to add sudo apt-get install lib32stdc++6 lib32z1 to get this working. Here are some links, google+ thread and askubuntu thread
  • Alex P.
    Alex P. over 10 years
    this may still work in 13.10. But distro maintainers disagree with Adam regarding "cleanliness" of this solution. After all ia32-libs was just a temporary fix till the proper multiarch support was implemented.
  • digit plumber
    digit plumber over 10 years
    E: Package 'lib32stdc++6' has no installation candidate E: Package 'lib32gcc1' has no installation candidate E: Unable to locate package lib32ncurses5
  • alex
    alex over 10 years
    paste the full solution instead of just providing a link.
  • Gerhard Burger
    Gerhard Burger over 10 years
    Please use the solution by Alex P., it is way better.
  • jul
    jul about 10 years
    @Gerhard Burger: why?
  • Gerhard Burger
    Gerhard Burger about 10 years
    @jul Take for example libc6-i386. Try apt-cache show libc6-i386 in a terminal, and look for the line Architecture:. As you can see it's a 32-bit binary in a 64-bit package source. Now, if you do apt-cache show libc6:i386 you can see that it is a 32-bit binary in a 32-bit package source (what you would expect), also you can see the multiarch flag, and that if you will install it, it will replace libc6-i386.
  • Clayton
    Clayton about 10 years
    The reason that you want to post a full solution, even though it may seem repetitive, is that your link may (and probably will at some point) become dead. At that point, your answer is worthless because it has no content. See this Stack Exchange help article.
  • Ray
    Ray almost 10 years
    i got a dependencies error, i removed it by going to software center and adding all repository, updating ubuntu and running the command. just in case someone also gets the same error as i do
  • Rodion V
    Rodion V over 7 years
    Works on Debian jessie too