<

Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x

Building Android app with NDK - integrated in Eclipse with CDT

Published on
21,901 Points
15,901 Views
Last Modified:
Update (December 2011): Since this article was published, the things have changed for good for Android native developers. The Sequoyah Project automates most of the tasks discussed in this article. You can even find instructions for debugging your native code with Eclipse.

This was inspired by Robert Green's article, Get Your Eclipse-Integrated NDK On!   Luckily, with the new R4 release of the Android Native Development Kit (NDK), the procedure has become much much easier.

Prerequisites

Download Cygwin from http://cygwin.org - ver. 1.7.5 is OK.  I recommend using the default installation directory: Install it in
    c:\cygwin  
Make sure that c:\cygwin\bin is added to PATH. I set the environment variable CYGWIN=nodosfilewarning to make Windows integration easier.

Download Android SDK from http://developer.android.com/sdk/index.html. Unpack it to a directory without spaces in the folder name. Follow the instructions on the SDK page to install JDK, Eclipse, and ADT plugin.

Download Android NDK from http://developer.android.com/sdk/ndk/index.html. Unpack to a directory without spaces. Set NDK_ROOT environment variable to point there.

Download Eclipse CDT (C Development Tools) from http://www.eclipse.org/cdt/.  Follow the instructions there to add CDT to your Eclipse.


Add project

Now it's time to import an existing Android project (C:\APPS\android-ndk-r4\samples\hello-jni is fine). It will show up as Java only, expecting you to run the build from the Cygwin command prompt.

Right-click on a project, then select New -> Convert to C/C++ project.  In the dialog, choose Makefile project with Other Toolchain.

convert
Click Finish.

Once again, right-click on the project, go to the Properties -> C/C++ Build -> Builder settings tab. Uncheck "Use default build command", and type make -f ${NDK_ROOT}/build/core/build-local.mk

builder settings

Please don't forget to click Apply.

Choose the Behavior tab (Properties -> C/C++ Build again).  Remove target names from both "Build" boxes. Leave clean target for the third build type (Clean).

builder behaviour
Please don't forget to click Apply again.


Inspector integration

To help the Inspector find the include files, choose C/C++ General -> Paths and Symbols.  For both C and for C++ remove all built-in include paths. You will need the following three:

${NDK_ROOT}/build/prebuilt/windows/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/include-fixed
${NDK_ROOT}/build/prebuilt/windows/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/include
${NDK_ROOT}/build/platforms/android-8/arch-arm/usr/include

Open in new window


builder paths
You may include other paths, e.g. project-specific.

Done! Your projects will build now including Android.mk that is in jni directory.

Unfortunately, CDT cannot help you with debuggong. Use GDB that is provided with NDK.  But you can use ELF binary parsers of the CDT to examine the libraries that are built.
0
Comment
Author:alexcohn
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
0 Comments

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Join & Write a Comment

This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.
Suggested Courses

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month