本文档是自己一边实际操作一边记录完成,每一关键步骤都有截图与详细说明,本是自己的记录也是拿出来与大家分享一下,希望帮助更多的人,因为付出的很多心血,所以没有0积分分享,见谅。方法2的缺点是首次配置复杂,优点是不必每次调试都重新在目标机安装app,并可以在目标程序运行过程中随时开始调试。文档完成时间是2014年10月。 ### 使用Eclipse单步调试JNI代码(方法2) #### 环境配置 为了能够有效地进行JNI代码的调试,首先需要确保以下环境已正确配置: - **ADT Bundle**: Eclipse版本为Juno - **NDK**: 版本r9 - **JDK**: 版本8 - **操作系统**: Ubuntu Kylin #### 步骤详解 **0. 准备工作** - 在终端中执行`adb shell`以连接到设备。 - 输入`su`获得超级用户权限。 - 使用`chmod`和`chown`命令调整目标目录的权限: - `#chmod 777 /data` - `#chmod 777 /data/data` - `#chown system.system /data/data` - 打开Eclipse,导入位于NDK中的示例项目`hello-jni`。 - 通过`File -> Import`打开导入向导。 - 选择`Android -> Existing Android Code into Workspace`。 - 导入`hello-jni`示例项目,并勾选`Copy projects into workspace`。 - 完成后点击`Finish`。 **1. 修改Android版本** - 修改项目的`AndroidManifest.xml`文件中的最低支持版本: - `<uses-sdk android:minSdkVersion="14"/>` - 修改`project.properties`文件中的目标版本: - `target=android-14` - 确保以上两个文件中指定的版本号一致,且该版本存在于您的NDK和SDK中。 **2. 转换项目为C/C++项目** - 右键点击项目,选择`New -> Other`。 - 从C/C++类别中选择`Convert to C/C++ Project (Add C/C++ nature)`选项。 - 选择`Makefile project`中的`Linux GCC`。 - 点击`Finish`完成转换。 **3. 配置项目属性** - 右键点击项目,选择`Properties`。 - 在`C/C++ Build`选项卡中配置`Build Command`为`ndk-build NDK_DEBUG=1`。 - 在`C/C++ General`选项卡下的`Paths and Symbols`中: - 修改`Includes`标签页中的`GNU C`和`GNU C++`配置。 - 设置路径为`/usr/ndk/android-ndk-r9/platforms/android-14/arch-arm/usr/include`。 - 添加路径`/usr/ndk/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/include`。 - 使用`Android Tools -> Add Support Library`命令添加支持库。 - 执行`Build Project`命令编译项目。 **4. 配置调试** - 使用终端切换到项目目录并运行`ndk-gdb`命令,这将生成用于调试所需的`app_process`文件。 - 在Eclipse中配置调试环境: - 进入`Debug -> Debug Configurations`。 - 选择`C/C++ Application`,新建一个名为`Hellojni4CPP`的调试配置。 - 在`Main`选项卡中设置`C/C++ Application`路径为`/home/wtj/workspace/Hello-jni/obj/local/armeabi/app_process`。 - 选择正确的项目`HelloJni`。 - 在`Process Launcher`中选择`Standard`。 - 在`Debugger`选项卡中: - 设置`Debugger`为`gdbserver`。 - 在`Stop on startup at`中填写C++程序入口函数,如`Java_com_example_hellojni_HelloJni_stringFromJNI`。 - 设置`Gdb debugger`路径为`/usr/ndk/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-gdb`。 - 指定`Gdb command file`为`/home/wtj/workspace/HelloJni/obj/local/armeabi/gdb2.setup`,注意该文件尚不存在,稍后创建。 - 勾选`Verbose console mode`选项以便在控制台中与gdb进行交互。 - 进入`Debugger Options -> Connection`子项中进一步配置连接选项。 通过以上步骤,您已经成功配置了一个可以用于调试JNI代码的环境。这种方法虽然初次配置较为复杂,但一旦配置完成,即可实现无需每次调试都在目标设备上重新安装应用程序,并且能够在程序运行过程中随时开始调试的功能。这对于开发人员来说是一个非常实用且高效的调试方式。
- polahe2015-10-17正在试验,试了好多都不行,再试试看
- 粉丝: 130
- 资源: 29
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助