Android Studio NDk调试(基于gradle-ex

作者: alexis_zyp | 来源:发表于2016-03-13 23:23 被阅读16637次

这篇文章是使用我上一篇文章Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件)的demo来讲解NDk的调试技巧。

1.开始前最好先看看我的另一片文章Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件),因为我这篇NDk调试教程,完全是基于上一篇文章的工程来进行的。另外如果是你本地的其他的NDK工程,确保你的NDK工程是基于gradle-experimental plugin构建NDK工程。因为LLDB调试引擎需要gradle-experimental plugin的支持。

2.我就基于我自己的gradle-experimental plugin构建NDK工程来讲解了。首先打开工程Gradle_Experimental_NDK,运行左边的app框,选择Edit configurations... 如下图所示:

Paste_Image.png

3.点击Edit configurations进入Debug configurations界面,点击左上角的+号,弹出下拉框,选择Android Native,如下图所示:

Paste_Image.png

4,点击Android Native进入,如下的界面,可以自己起一个Name名字,我起的是app-native ,Module选择app。

Paste_Image.png

注:如果你还没有安装LLDB会有如下错误提示,不用担心,只要点击fix,然后按照引导安装LLDB就行了。


Paste_Image.png

LLDB安装完成,如下图:


Paste_Image.png

5.点击app-native界面的Debugger选项,选择Debug Type 为Native ,如下图所示:

Paste_Image.png

6.点击右下角的OK按钮,所有的配置都已经完成了,然后点击运行按钮左边的app框,可以看到除了app选项,还多了一个我们刚刚配置的app-native选项,选择app-native选项,然后在MyLibrary.c文件中加一个断点,点击debug按钮,程序运行到手机上之后,可以看到程序运行到断点处,停下来了,说明可以成功调试c/c++代码了,有图为证,请看下图:

运行前操作图:


Paste_Image.png

运行时到debug状态截图:

Paste_Image.png

7.看完了是不是觉得很简单,的确,gradle-experimental plugin插件和LLDB的配合使得NDK工程的构建和调试变得很简单。

资源下载:Demo

相关文章

网友评论

  • 281072019671:悲剧,不知道是不是android studio升级过的问题,这里的第一步就执行不下去了,没有android native选项,我的工程是肯定有native的因为我库都编译好了在跑了只是出了问题想要调试,所以肯定不是配置的问题。。。悲哀。
  • 蜗牛爱爬行:这种并不好,现在都用cmake方式了!
  • 木子而东:module里的配置改怎么弄啊,,externalNativeBuild {
    cmake {
    cppFlags "-std=c++11 -fexceptions"
    }
    }
    这种的改怎么配置
    281072019671:cppFlags.add("-frtti -fexceptions") 改成这样就好了。其实官方的文档上都有示范的。
  • devzhaoyou:介绍的非常详细,非常感谢
  • looooker:你好,我安装了NDK,studio 2.2.3版本,每次调试都会自动启动lldb server 巨卡,启动不起来,如何关闭lldb server??
    cb6bbd7bee6f:请问你这是怎么解决的?
  • 临岁之寒:始终不在断点处停下来,请问有可能是什么问题导致的?
  • 6b9be44450e9:无法安装LLDB,下载了LLDB包也暂时不知道应该安装到哪里,求助
  • 7569349de36d:楼主从官网翻译的吧。我全部照做了,结果还是无法debug断点,android studio没有反应,模拟器也显示正在等待debugger连接,输出信息:

    04/28 15:26:15: Launching app-native
    No apk changes detected since last installation, skipping installation of D:\opensource\android-ndk\hello-jni\app\build\outputs\apk\app-all-debug.apk
    $ adb shell am force-stop com.example.hellojni
    $ adb shell am start -D -n "com.example.hellojni/com.example.hellojni.HelloJni" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
    Waiting for application to come online: com.example.hellojni.test | com.example.hellojni
    Connecting to com.example.hellojni
    Now Launching Native Debug Session

    Process finished with exit code 0
    7528f26b46ff:请问这问题最后怎么解决的?
    7569349de36d:@神气 Failed to attach native debugger: Execution finished
  • 2650a9c64a15:你好, 请问LLDB是安装到哪里呢, 我下了个离线包(AS因为网络问题不能自动安装), 不知道该解压到哪里?
    36ff1ddfdbc2:@有鱼_ 如何解决的?我也无法自动安装LLDB,求助
    6b9be44450e9:@有鱼_ 如何解决的?我也无法自动安装LLDB,求助
    2650a9c64a15:@有鱼_ 已解决
  • difcareer:有qq或者微信么,关于ndk的调试有些地方请教一下,我用的androidstudio版本和你不一样
    alexis_zyp:@difcareer QQ:1511341868
  • difcareer:赞,回头试试

本文标题:Android Studio NDk调试(基于gradle-ex

本文链接:https://www.haomeiwen.com/subject/kdkflttx.html