Android .aab包体积暴涨:多余native/mac产物如何移除?
解决APK/AAB包体积异常膨胀(含mac原生文件)问题
一、/native/mac产物是什么
base/root/native/mac下的文件是面向macOS平台的原生二进制组件,属于纯Android应用的无用冗余:
- 这类文件大概率是你更新的Firebase、Android Auto、Billing或core类依赖引入的,部分跨平台依赖会打包桌面端(macOS)的原生逻辑,用于支持Android Studio预览或跨平台兼容场景,但对Android应用完全无意义。
- 这些文件会被Google Play归类为「Other」,是导致包体积从5MB暴涨至51MB的核心原因。
二、移除方案
1. 直接在打包配置中排除冗余文件
在模块的build.gradle(或build.gradle.kts)中添加打包过滤规则,直接剔除mac平台的原生文件:
android { packagingOptions { exclude 'root/native/mac/**' exclude 'lib/mac/**' // 若存在其他路径的mac原生文件,一并排除 } }
2. 定位引入冗余的具体依赖
通过Gradle依赖树排查源头:
- 执行命令查看全量依赖:
./gradlew app:dependencies - 重点检查Firebase、Android Auto、Billing相关依赖,找到包含macOS组件的依赖项。如果不影响功能,可以考虑:
- 替换为仅支持Android平台的依赖变体
- 临时降级到不含该冗余的依赖版本
3. 关闭不必要的桌面端构建特性
如果项目中开启了桌面端相关配置(比如Compose Desktop),需清理:
- 移除
build.gradle中多余的桌面插件(如org.jetbrains.compose.desktop) - 删除
compose-desktop类的无关依赖
4. 清理缓存后重新构建
执行以下命令清理旧构建缓存,避免冗余文件残留:
./gradlew clean ./gradlew assembleRelease
内容的提问来源于stack exchange,提问作者Igro182
相关产品推荐
相关产品推荐

