微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

之后我能够调试我的本机代码.

原文地址:https://www.jb51.cc/android/318509.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐