Debugging NDK and JNI for Android
This article will focus on debugging code for Android.
Recently, there have been many advances in this direction. Android Studio appeared, google added support for debugging native code in eclipse.
If you need to debug only Java, then Android Studio will cover your needs completely.
If you need debugging with C ++ or Java code, then the ADT Bundle with built-in Eclipse will again help solve your problem.
If briefly
on some devices it is also necessary to set debuggable to true in the manifest.
But if you need to debug jni code, where c ++ and Java functions work alternately, then this method will not work for you, because depending on the chosen debugging method (Android Native Application, Android Application ) debugging works either with C ++ or java code.
How to debug mixed code will be discussed later in the article.
The basis of our entire system will be the NVIDIA Debug Manager for Android NDK. Despite the statement that it is for debugging the Tegra platform, it is superbly capable of debugging any Android platform.
I did not succeed in installing NVIDIA Debug Manager for Android NDK on the ADT Bundle, so I had to do my own assembly.
First, a list of what we need.
Installation procedure
1. Install Eclipse - just unpack it wherever you want
2. Install ADT - unpack anywhere, run \ tools \ android - add the necessary platforms
3. Install NDK - unpack anywhere
4. Install ADT Plugin in Eclipse
5. Run the Tegra Android Development Pack installer - we only need the NVIDIA Debug Manager for Android NDK
6. We find in the installation folder NVDebugMgrForAndroidNDK * .zip
7. Run eclipse Help-> Install New Software-> Add-> Archive show the path to the installed zip to the file, put a daw on the NVIDIA Debug Manager, agree with everything that they will offer us
8. The last step in the Debug as Android NDK Application list (on some devices it may say that I did not find GDB Make sure that the Android NDK Application -> GDB Server Settings is in the settings APK bundled)
Now breakpoints work both in Java and in C ++ code.
If you suddenly encounter problems with NDK 10, try r9d
here are links to some versions of
android-ndk-r9d-windows-x86_64.zip
android-ndk-r9d-darwin-x86_64.tar.bz2
android -ndk-r9d-linux-x86.tar.bz2
Recently, there have been many advances in this direction. Android Studio appeared, google added support for debugging native code in eclipse.
If you need to debug only Java, then Android Studio will cover your needs completely.
If you need debugging with C ++ or Java code, then the ADT Bundle with built-in Eclipse will again help solve your problem.
If briefly
- Make it clear to Eclipse that the project contains a native part (Add native support)
- Make sure that the build command has NDK_DEBUG = 1
- Click Debug as Android Native Application
on some devices it is also necessary to set debuggable to true in the manifest.
But if you need to debug jni code, where c ++ and Java functions work alternately, then this method will not work for you, because depending on the chosen debugging method (Android Native Application, Android Application ) debugging works either with C ++ or java code.
How to debug mixed code will be discussed later in the article.
The basis of our entire system will be the NVIDIA Debug Manager for Android NDK. Despite the statement that it is for debugging the Tegra platform, it is superbly capable of debugging any Android platform.
I did not succeed in installing NVIDIA Debug Manager for Android NDK on the ADT Bundle, so I had to do my own assembly.
First, a list of what we need.
- Eclipse (I recommend Kepler) download will suit either Standart or IDE for C / C ++ Developers
- Stand-alone Android SDK Tools Bottom of the page GET THE SDK FOR AN EXISTING IDE
- NDK If you are not writing yet under x64 Android then you need Platform (32-bit target)
- Tegra Android Development Pack Registration is required to download it
Installation procedure
1. Install Eclipse - just unpack it wherever you want
2. Install ADT - unpack anywhere, run \ tools \ android - add the necessary platforms
I had enough of such a set

3. Install NDK - unpack anywhere
4. Install ADT Plugin in Eclipse
Instruction manual
Original- Launch Eclipse select Help> Install New Software
- Click Add in the upper left corner.
- In the Add Repository dialog, type “ADT Plugin” in the Name field and
dl-ssl.google.com/android/eclipse
in the Location field - In the Available Software dialogue, activate the checkbox opposite Developer Tools and click Next
- In the next window, click Next again.
- Read and accept the license agreement
- If during installation you received a security warning, just click OK
- Restart Eclipse
- In the Welcome to Android Development window, select Use existing SDKs and specify the path to the installed SDK
- Go to Eclipse-> Preference-> Android-> NDK and specify the path to NDK
5. Run the Tegra Android Development Pack installer - we only need the NVIDIA Debug Manager for Android NDK
6. We find in the installation folder NVDebugMgrForAndroidNDK * .zip
7. Run eclipse Help-> Install New Software-> Add-> Archive show the path to the installed zip to the file, put a daw on the NVIDIA Debug Manager, agree with everything that they will offer us
8. The last step in the Debug as Android NDK Application list (on some devices it may say that I did not find GDB Make sure that the Android NDK Application -> GDB Server Settings is in the settings APK bundled)
Screen

Now breakpoints work both in Java and in C ++ code.
If you suddenly encounter problems with NDK 10, try r9d
here are links to some versions of
android-ndk-r9d-windows-x86_64.zip
android-ndk-r9d-darwin-x86_64.tar.bz2
android -ndk-r9d-linux-x86.tar.bz2