Eclipse+CDT+GDB:详解Android NDK环境下的调试实战

1星 需积分: 3 1 下载量 6 浏览量 更新于2024-07-24 收藏 2.04MB DOCX 举报
本文档主要介绍了如何在Eclipse集成开发环境(Eclipse+CDT)配合GNU Debugger (GDB) 来调试Android Native Development Kit (NDK) 程序。首先,作者推荐在Linux环境下(如Ubuntu 11.10)使用Eclipse 3.7 Indigo版本,以及Java JDK 6,Android SDK 2.2,和Android NDK r7。在Windows环境下,虽然可以借助如Cygwin这样的工具实现GDB调试,但性能较差,因此Linux环境是更佳的选择。 在开始调试前,确保项目能正常运行是前提。创建一个新的Android项目,选择“Create project from existing source”,并将源代码路径设置为`/home/shaodx/android/android-ndk-r7/samples/hello-jni`,这是一个基础的NDK示例。项目的目标SDK版本设为2.2,由于篇幅限制,这里并未提及其他版本的测试情况,但理论上应该没有问题。 程序的主要功能是在Activity中创建一个TextView,并通过JNI调用C++代码返回字符串,显示在TextView上。为了便于观察调试效果和局部变量变化,作者添加了一些不影响程序功能的额外代码。 在尝试直接运行时,由于动态链接库(.so文件)尚未编译,所以会遇到错误。这时需要在项目的根目录下运行`ndk-build`命令来编译so文件。然而,出现了一个问题,即`awk`工具版本过期,导致编译失败。解决方案是找到位于`/home/shaodx/android/android-ndk-r7/prebuilt/linux-x86/bin/`下的64位awk,将其删除,然后重新编译。 最终,编译成功后,so文件会存储在`libs/armeabi/libhello-jni.so`目录下。此时,可以运行程序进行调试,观察和分析C++代码的行为。 通过这个过程,读者可以学习到如何在Eclipse+CDT的环境中配置和利用GDB调试器,处理Android NDK项目中的编译问题,以及解决工具版本不兼容等常见问题。这对于Android开发者来说是一项重要的技能,特别是在遇到底层编程挑战时,能够有效定位和解决问题。