我明明打包的是arm64,为什么通过libchecker查看还有v7a和x64的包

13 次阅读

本文最后更新于 2026年5月7日。

我来帮你查看一下build.gradle文件的配置,了解为什么会出现多个架构的库。

toolName: view_files

status: success

filePath: e:\mydoc\mygit\wylist\android\app\build.gradle

找到问题了!虽然你在 defaultConfig 中设置了只打包 arm64-v8a

ndk {
    abiFilters 'arm64-v8a'
}

但是你的依赖项中使用了 gsyVideoPlayer-ex_so

implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-ex_so:v8.4.0-release-jitpack'

问题原因:

gsyVideoPlayer-ex_so 是一个包含所有架构so库的包(ex_so = external so),它里面包含了 arm64-v8a、armeabi-v7a、x86_64 等多个架构的 .so 文件。即使你设置了 abiFilters,这些依赖库中的so文件仍然会被打包进去。

解决方案:

gsyVideoPlayer-ex_so 替换为只包含 arm64-v8a 的包:

implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-arm64:v8.4.0-release-jitpack'

这样只会打包 arm64-v8a 架构的so库,APK体积也会更小。

需要我帮你修改这个配置吗?