You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成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.** { *; }
      
  • 若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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 00:55:54