如何缩小ProGuard反混淆文件大小?解决Google Play AAB上传报错
解决ProGuard反混淆文件过大无法上传AAB的问题
排查与优化方案
限制mapping文件生成范围
检查build.gradle配置,确保仅给release版本生成mapping文件,避免debug版本或多flavor重复生成冗余内容。示例配置:android { buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' mappingFileUploadEnabled true } debug { minifyEnabled false mappingFileUploadEnabled false } } }清理旧mapping文件
手动删除项目build/outputs/mapping目录下的历史构建残留文件,防止打包时被误包含进AAB。精简ProGuard规则
- 移除规则中不必要的
-keep指令,仅保留业务必需的类、方法和字段,避免保留大量未使用代码导致mapping膨胀。 - 在
proguard-rules.pro中添加优化选项,精简代码结构:-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* -optimizationpasses 5
- 移除规则中不必要的
关闭R8冗余日志
若开启了R8详细日志,会让mapping文件包含过多调试信息。在gradle.properties中关闭相关配置:android.enableR8.fullMode=false android.r8.log.level=warning拆分mapping文件上传
大型模块化项目可禁止将mapping打包进AAB,之后在Play Console手动上传对应文件。配置如下:android { bundle { mapping { enabled false } } }
验证优化效果
修改配置后执行./gradlew bundleRelease重新构建AAB,解压后查看mapping/文件夹总大小,确认是否降至1600MB以下。
内容的提问来源于stack exchange,提问作者DroidPest
相关产品推荐
相关产品推荐

