You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

包含KMP模块的Android本地Maven发布APK体积暴涨问题排查求助

包含KMP模块的Android本地Maven发布APK体积暴涨问题排查求助

各位大佬好,最近遇到个头疼的APK体积问题,折腾好几天没摸到根因,想请大家帮忙分析下!

问题背景

最近给我的Android项目做了两个核心改动:

  1. 新增了一个用Jetpack Compose编写的页面
  2. 引入了自己用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包,会不会是依赖传递或者某个插件的配置错误导致的?

实在搞不定了,蹲一个大佬的思路,万分感谢🙏

火山引擎 最新活动