如何让NDK调试在Android Studio中工作?

Android Studio不会停留在C ++代码的断点处,这是我迄今为止所做的:

  • 在AndroidManifest.xml中:

    android:debuggable="true"
    
  • 在build.gradle(这可能是问题):

    sourceSets.main {
      jniLibs.srcDir 'src/main/libs'
      jni.srcDirs = []
    }
    
    task ndkBuild(type: Exec) {
      commandLine android.ndkDirectory.getAbsolutePath() + '' + 'ndk-build.cmd', '-C', file('src/main/jni').absolutePath, 'NDK_DEBUG=1'
    }
    
    tasks.withType(JavaCompile) {
      compileTask -> compileTask.dependsOn ndkBuild
    }
    
  • 将应用程序配置为Android Studio上的本机应用程序

  • 在C ++代码中放置断点

  • 调试应用程序

  • 这似乎工作,因为它说:“现在启动本机调试会话”此外,我可以用停止按钮暂停应用程序,但没有断点工作。

    感谢您的帮助


    通过你的build.gradle的语法看起来你不使用gradle的实验性插件,没有它,你将无法在android studio中调试原生c / c ++。 欲了解更多信息,请阅读:Android NDK预览


  • 在Run-> Debug Configuration“Debugger”选项卡中,选择Debug type为“Native”。 在“发布之前”,如果Android studio报告冲突,请接受“修复”它的建议。 Android工作室将下载lldb库。

  • 点击'调试'底部并等待直到调试器附加到进程。

  • 现在你可以在调试windown中看到变量。


  • 如果你还在寻找,Android Studio最近增加了对ndk-build和CMake项目直接集成的支持:http://tools.android.com/tech-docs/external-c-builds

    亲切的问候,乔莫

    链接地址: http://www.djcxy.com/p/96833.html

    上一篇: How to get NDK debugging to work in Android Studio?

    下一篇: How do you bind a language (python, for example) to another (say, C++)?