gpt4 book ai didi

android - 使用 Gradle 构建 native 代码时会删除符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:52 25 4
gpt4 key购买 nike

在我的 Android 项目中,使用最新的 Gradle 构建工具,我有一个包含原生 C 代码和一些简单函数的文件。 C 文件中唯一包含的是 string.h 和 jni.h,这些函数只返回 String 和原语。该文件位于其他源文件夹(java、res 等)旁边的 jni 目录中。

当我构建应用程序时,它会编译 C 代码、生成 .so 文件并将其包含在我的 APK 中。问题是 .so 文件已删除所有符号。

当检查放置在 build/intermediate/ndk/obj 中的中间 .so 文件时,所有符号仍然存在。因此,在生成第一个 .so 文件并打包后的某处,所有内容都被剥离。

当使用命令行 ndk-build 构建 .so 文件时,一切正常并且包含了符号。

这是 Android Gradle 插件中的错误(我使用的是最新的!)还是我遗漏了什么?

最佳答案

符号位于:src/main/obj/local所以添加到 build.grade :

android.sources {
main {
jni {
source {
srcDir 'src/main/none'
}
}
jniLibs {
source {
srcDir 'src/main/obj/local'
}
}
}
}

然后转到 Debug Configuration-> Debugger 并添加到 Symbol 目录:app/build/intermediates/jniLibs

之后我就可以调试我的 native 代码了。

关于android - 使用 Gradle 构建 native 代码时会删除符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872592/

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