如何让NDK调试在Android Studio中运行?

Pad*_*hai 16 c++ android-ndk lldb android-studio

Android Studio不会在C++代码中的断点处停止,这是我到目前为止所做的:

  1. 在AndroidManifest.xml中:

    android:debuggable="true"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在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
    }
    
    Run Code Online (Sandbox Code Playgroud)
    1. 在Android Studio上将应用程序配置为本机应用程序

    2. 在C++代码中放置断点

    3. 调试应用程序

这似乎有效,因为它说:"现在启动本机调试会话"而且我可以使用停止按钮暂停应用程序,但没有断点工作.

谢谢您的帮助

Hon*_*ong 7

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

  2. 单击"debug"底部并等待调试器附加到该进程.

  3. 现在您可以在调试windown中看到变量.


Mar*_*ler 6

安装了LLDB后,可以使用本机/双重调试.

运行/调试配置


小智 4

根据 build.gradle 的语法,您似乎没有使用gradle 的实验性插件,没有它,您将无法在 android studio 中调试本机 c/c++。有关更多信息,请阅读:Android NDK 预览