前端之家收集整理的这篇文章主要介绍了
android – 使用Gradle构建本机代码时会删除符号,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的
Android项目中,使用最新的Gradle构建工具,我有一个带有本机C
代码的
文件和一些简单的
函数. C
文件中包含的唯一
内容是string.h和jni.h,
函数只返回String和primitives.除了其他源
文件夹(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->调试器并添加到Symbol目录:
应用程序/建立/中间体/ jniLibs
之后我能够调试我的本机代码.
原文链接:/android/318509.html