生成Release构建或执行minifyReleaseWithR8任务时缺失类错误
Android Release构建/
minifyReleaseWithR8任务失败:Core模块类缺失 问题描述
生成Release构建或执行gradle :app:minifyReleaseWithR8时构建失败,报错显示大量Core模块的类缺失,涉及范围包括:
- FirebaseModule相关工厂类
- Room相关类
- 各类UseCase
- 工具类
已尝试的修复步骤
- 清理并重建项目
- 失效缓存并重启Android Studio
- 更新Gradle及Android Gradle Plugin至最新版本
- 检查第三方库冲突或兼容性问题
- 确认项目依赖声明正确
排查与解决方向
1. 检查R8/ProGuard规则配置
- 确认Core模块是否包含自定义的ProGuard/R8规则文件(如
proguard-rules.pro或consumer-rules.pro),排查是否遗漏了对缺失类的保留规则。 - 针对Room、Firebase这类第三方库,添加官方推荐的混淆规则:
- Room相关示例规则:
-keep class com.yourpackage.core.database.** { *; } -keep @androidx.room.Entity class * -keep interface androidx.room.Dao -keepclassmembers class * implements androidx.room.Dao { <methods>; } - Firebase相关示例规则:
-keep class com.yourpackage.core.firebase.** { *; }
- Room相关示例规则:
- 若Core模块是库模块,需在其
build.gradle.kts中配置规则传递,确保App模块能继承这些规则:android { buildTypes { release { consumerProguardFiles("consumer-rules.pro") } } }
2. 检查Core模块的构建配置
- 确认Core模块
release构建类型是否开启了minifyEnabled或shrinkResources,若开启,需确保自身混淆规则未误删内部类。 - 核对Core模块中Room、Firebase等依赖的声明是否完整,版本是否与App模块保持一致(可通过
lib.version.toml统一管理版本)。
3. 验证模块依赖关系
- 确认App模块已正确依赖Core模块,在App的
build.gradle.kts中需存在:dependencies { implementation(project(":core")) } - 若Core模块使用
api声明依赖,检查依赖传递是否正常,未被其他配置阻断。
4. 分析R8详细日志
- 执行
gradle :app:minifyReleaseWithR8 --info或--debug命令,获取构建的详细日志,定位具体被移除的类及移除原因,针对性添加保留规则。
5. 再次核对版本兼容性
- 确认Room、Firebase等第三方库版本与当前Android Gradle Plugin版本兼容,部分旧版本库可能与新版AGP/R8存在适配问题。
内容的提问来源于stack exchange,提问作者Ayaan
相关产品推荐
相关产品推荐

