Tag Archives: development

Android on Ubuntu: IOException on aapt

As I told in a previous post, I’m setting up a new Ubuntu installation and I want to compile something for Android on it.

After installing Android SDK I got this error on my first iteration of “ant debug”

BUILD FAILED
/home/max/AndroidSDK/android-sdk-linux/tools/ant/build.xml:621: The following error occurred while executing this line:
/home/max/AndroidSDK/android-sdk-linux/tools/ant/build.xml:657: Execute failed: java.io.IOException: Cannot run program "/home/max/AndroidSDK/android-sdk-linux/platform-tools/aapt": error=2, No such file or directory

The error is in some way misleading because the binary is there, but the problem is that it’s a 32-bit executable

max@praxi:~$ ls -l /home/max/AndroidSDK/android-sdk-linux/platform-tools/aapt
-rwxr-xr-x 1 max max 929400 Jul 27 14:33 /home/max/AndroidSDK/android-sdk-linux/platform-tools/aapt

max@praxi:~$ file /home/max/AndroidSDK/android-sdk-linux/platform-tools/aapt
/home/max/AndroidSDK/android-sdk-linux/platform-tools/aapt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

The solution is near: we need 32-bit libraries

root@praxi:~# aptitude install ia32-libs

As always it’s a good idea to RTFM:

The Android Ant-based build system requires Ant 1.8.0

I’m setting up a new Ubuntu installation (Quantal Quetzal) and I’m going to play with some Android code on it.

The first test I did after installing the Android SDK gave me this result:

BUILD FAILED
/home/max/AndroidSDK/android-sdk-linux/tools/ant/build.xml:377: The Android Ant-based build system requires Ant 1.8.0 or later. Current version is 1.7.1

This is not what I needed, but fortunately the solution is easy enough.
Doing something like this solved my issue:

root@praxi:~# aptitude install ant=1.8.2-4build2

Done

Android

How to compile Android SDK samples

Recently I came across a Stackoverflow question about sample code in Android SDK.
The user was asking how to import code in an Eclipse project.

I’m not using Eclipse in my Android projects so I answered with command line instructions. My development environment is based on vim and bash.

My answer was a bit off topic, but can be useful to someone else.

Let’s presume you want to compile LunarLander sample.
You need to copy the directory recursively to a new path and work on it with the android command:
$ cp -r $ANDROID_SDK/samples/android-15/LunarLander .
$ android update project --path LunarLander/ --target 3 --subprojects
$ cd LunarLander/
$ ant debug install

You have to check the targets available to your system with the following command:
$ android list targets

References