如何让 NDK 调试在 Android Studio 中工作?
How to get NDK debugging to work in 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++ 代码中放置断点
调试应用程序
这似乎有效,因为它说:"Now Launching Native Debug Session" 此外,我可以使用停止按钮暂停应用程序,但没有断点在工作。
感谢您的帮助
根据您的 build.gradle 语法,您似乎没有使用 experimental plugin for gradle,
没有它,您将无法在 android 工作室中调试本机 c/c++。
有关更多信息,请阅读:Android NDK Preview
此代码实验室可能会有所帮助:
调试在第 5 步
在运行->调试配置"Debugger"选项卡中,选择调试类型"Native"。在"Before launch"的领域,如果Android工作室报告有冲突,接受'fix'的推荐。 Android studio 将下载 lldb 库。
单击 'debug' 底部并等待调试器附加到进程。
现在您可以在调试窗口中看到变量。
如果您还在寻找,Android Studio 最近添加了对 ndk-build 和 CMake 项目直接集成的支持:http://tools.android.com/tech-docs/external-c-builds
亲切的问候,
乔莫
你可以试试这个:
1.in app/build.gradle:
在依赖标签:
releaseCompile project(path:':youModuleName',configuration:'release')
debugCompile project(path:':youModuleName',configuration:'debug')
2.in youModule/build.gradle:
在 android 标签:
publishNonDefault true
演示:
Android 工作室 3
Android Studio 3 使整个过程变得微不足道。
首先,获取一个简单的示例应用程序,例如:https://github.com/googlesamples/android-ndk/tree/2020d9674a6601e8219eed2921f5028beb856a24/hello-gl2/
然后只需在 C++ 或 Java 上设置断点,然后执行:运行 > Debug
您也可以从 Java 进入 native calls 并进入 C++ 代码。
安装 LLDB 后,可以进行本机/双调试。
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++ 代码中放置断点
调试应用程序
这似乎有效,因为它说:"Now Launching Native Debug Session" 此外,我可以使用停止按钮暂停应用程序,但没有断点在工作。
感谢您的帮助
根据您的 build.gradle 语法,您似乎没有使用 experimental plugin for gradle, 没有它,您将无法在 android 工作室中调试本机 c/c++。 有关更多信息,请阅读:Android NDK Preview
此代码实验室可能会有所帮助:
调试在第 5 步
在运行->调试配置"Debugger"选项卡中,选择调试类型"Native"。在"Before launch"的领域,如果Android工作室报告有冲突,接受'fix'的推荐。 Android studio 将下载 lldb 库。
单击 'debug' 底部并等待调试器附加到进程。
现在您可以在调试窗口中看到变量。
如果您还在寻找,Android Studio 最近添加了对 ndk-build 和 CMake 项目直接集成的支持:http://tools.android.com/tech-docs/external-c-builds
亲切的问候, 乔莫
你可以试试这个:
1.in app/build.gradle:
在依赖标签:
releaseCompile project(path:':youModuleName',configuration:'release')
debugCompile project(path:':youModuleName',configuration:'debug')
2.in youModule/build.gradle:
在 android 标签:
publishNonDefault true
演示:
Android 工作室 3
Android Studio 3 使整个过程变得微不足道。
首先,获取一个简单的示例应用程序,例如:https://github.com/googlesamples/android-ndk/tree/2020d9674a6601e8219eed2921f5028beb856a24/hello-gl2/
然后只需在 C++ 或 Java 上设置断点,然后执行:运行 > Debug
您也可以从 Java 进入 native calls 并进入 C++ 代码。
安装 LLDB 后,可以进行本机/双调试。