如何在Android Studio中启用NDK调试?

21

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

  1. 在AndroidManifest.xml中:

    android:debuggable="true"
    
  2. 在 build.gradle 文件中(这可能是问题所在):

  3. 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
    }
    
    1. 在Android Studio上将应用程序配置为本地应用程序

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

    3. 调试应用程序

    这似乎可以工作,因为它显示“现在正在启动本地调试会话”,而且我可以使用停止按钮暂停应用程序,但没有任何断点起作用。

    感谢您的帮助。

7个回答

12

安装了LLDB后,就可以使用本地/双调试。

运行/调试配置


8
  1. 在“运行->调试配置”中的“调试器”标签下,选择调试类型为“Native”。如果Android Studio报告冲突,请接受“修复”的建议。Android Studio将下载lldb库。

  2. 点击“调试”按钮并等待调试器附加到进程上。

  3. 现在您可以在调试窗口中看到变量。


4

2

1

我认为人们会投反对票是因为你的回答并不是一个真正的回答。它没有解释太多,只提供了一个链接。最好直接提供与问题相关的信息,即使可以在该链接中找到。例如:“Android Studio 3通过与ndk-build和CMake的直接集成使这个过程更容易。安装lldb并使用其中之一配置您的项目后,Android Studio将允许双重调试。这里有一个使用CMake的示例项目:…” - Mihai Timar

1
你可以尝试这个:
1. 在 app/build.gradle 文件中: 2. 找到 dependencies 标签:
releaseCompile project(path:':youModuleName',configuration:'release')
debugCompile project(path:':youModuleName',configuration:'debug')

2. 在你的Module/build.gradle文件中:

在android标签下:

publishNonDefault true

演示:

https://github.com/sunalong/JNIDemo



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接