gpt4 book ai didi

Android:在 android studio 中进行 NDK-Build C/C++ 调试

转载 作者:行者123 更新时间:2023-12-05 00:11:53 24 4
gpt4 key购买 nike

尝试在 Android studio(v4.1.2) 中调试 ndk-build C 代码。下面是 build.gradle 设置。

  1. jni,C/C++ 源文件目录。实际的 C 文件不在 jni 文件夹下,而是在它之外,但在 android.mk 文件中引用。

    sourceSets.main.jniLibs.srcDirs = ['D:/ccodefolder/jni/']

2)Android.mk 从 C、c++ 代码构建共享库,并链接内置的共享库和静态库。

 externalNativeBuild {
ndkBuild {
path file('D:/ccodefolder/jni/Android.mk')
}
}
ndkVersion '21.1.6352462'
debug {
debuggable true
jniDebuggable true
minifyEnabled false
shrinkResources false
//ndk.debugSymbolLevel = 'FULL'
}

4)项目结构如图所示。

enter image description here

能够运行项目并生成共享库以及其他预构建的 .SO 和 apk 作品,还创建了 CPP 文件夹并能够看到我的项目的 C 代码文件。

调试问题:

LLDB 服务器启动并且调试器附加到进程,但是调试任何 C 文件都失败并出现以下错误。

当前不会命中断点。没有可执行代码与此行关联

enter image description here

谢谢

最佳答案

您可以尝试几件事,我已经成功地解决了每一种解决方案。

来自NDK Bug Tracker :

Select Run -> Edit Configurations

On the left side, select Android App -> app

On the right side, select the Debugger tab

Under the Symbol Directories sub-tab, press the + button

Browse to the following path:

libModule/build/intermediates/cmake/debug/objIn the Build Variants window, select the "debug" configuration for the app

我发现有时可行的另一种解决方案是仅在 C++ 代码中添加断点。 Android Studio 调试器不能很好地处理从 Java/Kotlin 到 C++ 的转换。我发现通过删除所有 Java 断点、重新启动 Android Studio 并再次启动 Debug模式,现在将命中 C++ 断点(尽管现在添加的任何 Java 断点都将丢失)。

关于Android:在 android studio 中进行 NDK-Build C/C++ 调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66069240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com