【问题标题】:APK generation is changing size of .so fileAPK 生成正在改变 .so 文件的大小
【发布时间】:2018-01-18 15:01:29
【问题描述】:

在 apk 中,我使用了一个包含本机库的 aar 库。尝试在运行时计算 .so 文件的 MD5 校验和,我注意到它与 aar 内的 .so 文件不同。文件的大小也发生了变化:apk 中的文件重量减少了大约 20 个字节。有谁知道为什么apk生成过程会修改这种文件?我可以做些什么来保持文件完好无损?

这只发生在 arm64 版本。

【问题讨论】:

  • 是作为预编译二进制文件包含的本机库,还是由 NDK 编译和构建的?
  • 由 Gomobile 编译构建,然后复制到最终的 .aar 库中。

标签: android md5 .so


【解决方案1】:

在我的 app/build 文件夹中,我看到 .so 文件也位于 mediums/transforms/mergeJniLibs 和 intermediates/transforms/stripDebugSymbol 中。 mergeJniLibs 中 .so 文件的 md5sum 与原始 .so 文件的总和相匹配。 stripDebugSymbol 中的 .so 文件的 md5sum 是不同的。进一步调查使我将此添加到模块的 build.gradle 的 android 部分(另请参阅:PackagingOptions doNotStrip documentation ):

android {
    .
    .
    packagingOptions {
        doNotStrip "**/*.so"
    }
    .
}

在 Gradle 同步、清理和重建之后,app/build/outputs/apk/debug 中 .so 的 md5sum 与原始 md5sum 匹配。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 更新为包含答案文本,而不是指向另一个问题的链接。
猜你喜欢
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 2015-12-03
  • 2015-05-14
相关资源
最近更新 更多