包含KMP模块的Android本地Maven发布APK体积暴涨问题排查求助
包含KMP模块的Android本地Maven发布APK体积暴涨问题排查求助
各位大佬好,最近遇到个头疼的APK体积问题,折腾好几天没摸到根因,想请大家帮忙分析下!
问题背景
最近给我的Android项目做了两个核心改动:
- 新增了一个用Jetpack Compose编写的页面
- 引入了自己用KMP(Kotlin Multiplatform)开发的共享业务逻辑模块,是通过本地Maven仓库发布后依赖引入的
结果打包出来的release APK体积直接暴涨了好几个G,解压后发现两个完全不该出现的异常情况:
- 包里居然包含了Android系统的全部字体文件,这部分占了超大体积
- 还混进了不属于Android平台的测试框架原生库,比如macOS的
librobolectric-nativeruntime.dylib,还有Windows平台的相关原生库
我已经排查过的点
- 检查了KMP模块的发布配置,特意确认了只打包Android目标平台的产物,没把desktop平台的代码或库带进来
- 核对了Compose相关的依赖,没有主动引入任何系统字体或者额外的字体库依赖
- 项目里的测试依赖(包括Robolectric相关)都是用
testImplementation声明的,按Android Gradle插件的规则,这部分应该不会被打进release包才对
想请教的问题
有没有大佬遇到过类似的情况?可能是哪里的配置踩坑了?比如:
- KMP模块本地Maven发布时,是不是某些默认配置导致非Android平台的产物被意外打包进依赖了?
- Compose和KMP结合使用时,会不会触发某个插件的默认行为,把系统字体也打包进APK了?
- 测试框架的原生库混进release包,会不会是依赖传递或者某个插件的配置错误导致的?
实在搞不定了,蹲一个大佬的思路,万分感谢🙏




