After the announcement of the rosjava stack for android devices, I decided to bite the bullet and finally familiarize myself with ROS. I have been looking for a way to periodically transmit my phone's GPS coordinates to a remote server for a project I'm working on, so I figured I'd try that as my first project with rosjava.
I've been following the directions at http://code.google.com/p/rosjava/wiki/Welcome to install the rosjava stack on my Fedora 15 x86_64 system. Unfortunately, there are a few gotchas that aren't outlined in the documentation:
1) If you have an x86_64 installation, you'll need some i686 libraries for the android SDK. Luckily, Fedora supports installing libraries from multiple architectures side-by-side very well. You can install the required libraries using the following command:
sudo yum install ncurses-devel.i686 zlib.i686 glibc.i686 libgcc.i686 ncurses-libs.i686 libstdc++.i386
2) Before you run "ant dist" to build rosjava, you'll likely have to edit the ant property files. This is for two reasons: the location of your SDK installation may not be detected, and the target android API may also be wrong. You can add a build.properties to the following directories:
rosjava/android/library
all subdirs under rosjava/android/tutorials/
containing the following text:
target=android-10
sdk.dir=/path/to/your/android-sdk-linux_x86
You can modify the target for your desired API version (I found a more detailed explanation of these levels at http://sagistech.blogspot.com/2010/05/android-sdk-error-unable-to-resolve.html).
3) There's a missing directory in the build tree that ant seems to need, a simple "mkdir rosjava/android/library/libs" should suffice.
Now you should be able to run "ant dist" as per the directions and build rosjava.