Android Native Code调试

本文分享了两种调试Android Native Code的方法:一是使用NDK下的gdb命令行;二是使用Sequoyah+CDT进行图形界面调试。介绍了所需环境配置及详细步骤。

弄了一天终于把调试android native code的环境给弄好了。

下面就把今天的所得给大家分享下,希望能对你有所帮助

1. 利用ndk下的gdb 命令行调试

2. Sequoyah + CDT 图形界面调试

 

具体的操作

1. 利用ndk下的gdb

1.) 安装cygwin,将ndk的路径加入/home/$USER/.bash_profile下

NDK=/cygdrive/d/android/ndk/android-ndk-r5b

export PATH=$NDK:$PATH

 

2.) 在cgywin下,进入应用所在的目录,例如%NDK%/samples/hello-jni。运行$NDK/ndk-build,编译成功之后会把so文件放发到libs/armeabi下

 

3.) 在window下,进入%NDK%/samples/, 运行android update project --path hello-jni,这个会生成ant脚本,再运行ant debug,编译成功,会在bin目录下生成debug版本的apk,adb install bin/*debug.apk,安装debug版本的apk到emulator或者手机上。确保androidmanifest.xml下,将application设置为debuggable=true。

 

4.) 在cgywin下,进入%NDK%/samples/hello-jni, 运行$NDK/ndk-gdb --start,  此时会在emulator或者device上启动hello jni的应用。如果应用已经启动,则不用加“--start”。此时就已经进入gdb调试模式,之后就跟在linux下gdb调试一样了

 

此种方法对于linux下的c/c++开发也许熟悉,但是对于从事java开发的你,却不是那么轻松,下面来看下第二种方法,图形界面,相信你一定会喜欢的,当然喜欢命令行的大牛们除外 :-)

 

2. Sequoyah + CDT 图形界面调试

1.) 安装Sequoyah, update site: http://download.eclipse.org/sequoyah/updates/2.0/ 

2.) 安装之后,右击hello-jni,选中android-tools->add native support

3.) 具体配置可以参考: http://www.eclipse.org/sequoyah/documentation/native_debug.php

4.) 上述步骤都成功之后,在项目的properties的builders选项会多了个CDT Builder. 编译项目,会出现ndk-build找不到。这个应该是由于ndk下的ndk-build只能在cygwin下运行,需要配置cygwin的运行环境变量,将ndk的路径加入其中。但是一直没有找到解决方法。这里用了个其他的方法,自己配置个新的c++ builder.具体可以参考http://student.youkuaiyun.com/space.php?uid=121497&do=blog&id=57864。将cdt builder去掉,改用自己配置的c++ builder,这样就可以在eclipse在自动编译native code

关于cdt builder不能工作的问题,只要在C/C++ build的build command里输入“bash %NDKs%/ndk-build”就可以了。那么就没有必要设置c++ builder了

 

找不到app_process的问题. 需要在cgywin下,执行ndk-gdb之后才会产生

 

5.) 按照 http://www.eclipse.org/sequoyah/documentation/native_debug.php配置好android debug & C++ debug之后,就可以开始你的图形界面的调试之旅。

 

过程是复杂的,却是值得。磨刀不误砍柴工。单步调试对于程序员来说,简直是妙不可言的事,很多之前只能靠猜测、打印信息的问题,就成为举手之劳了。

### ### 调试 React Native 应用在 Android 设备上的方法 在 Android 设备上调试 React Native 应用时,需要确保设备与开发环境正确连接,并启用调试工具。调试可以通过 React Native 自带的调试器、Chrome 开发者工具或 IDE 插件来完成。 首先,确保 Android 设备已开启 **USB 调试模式**,并连接到计算机。通过 `adb devices` 命令可以检查设备是否被正确识别。在项目目录下运行 `react-native run-android` 命令,React Native 会自动将应用安装到设备上并启动应用[^3]。 当应用运行后,可以通过摇晃设备或按下设备上的菜单键(通常是音量下键),调出开发者菜单。在菜单中选择 **Debug JS Remotely** 选项,应用会连接到调试服务器,并在浏览器中打开调试页面 `http://localhost:8081/debugger-ui`,此时可以使用 Chrome 开发者工具进行调试,查看控制台日志、设置断点等[^3]。 对于使用 **VS Code** 的开发者,可以安装 **React Native Tools** 插件,并通过快捷键 F5 启动调试。在 `.vscode/launch.json` 文件中配置调试器,指定调试平台为 `android` 并启用源映射,可以实现更高效的断点调试体验。调试器配置示例如下: ```json { "version": "0.2.0", "configurations": [ { "name": "Debug Android", "program": "${workspaceRoot}/.vscode/launchReactNative.js", "type": "reactnative", "request": "launch", "platform": "android", "sourceMaps": true, "outDir": "${workspaceRoot}/.vscode/.react" }, { "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", "url": "http://localhost:8081/debugger-ui", "webRoot": "${workspaceFolder}" } ] } ``` 此外,也可以使用第三方调试工具如 **React Native Debugger**,它集成了 Redux 开发工具、网络请求查看器等实用功能。安装完成后,关闭浏览器中的调试器(通常是 `http://localhost:8081/debugger-ui`),然后启动 React Native Debugger,即可直接在该工具中进行调试[^2]。 如果在调试过程中遇到页面白屏问题,可能是由于 JavaScript 代码加载失败或调试器未正确连接。此时可以尝试退出应用并重新启动,或在开发者菜单中选择 **Reload JS** 以重新加载 JavaScript 代码[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值