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

升级Android构建插件与Gradle版本后ProGuard/R8出现缺失类报错

升级Android构建插件与Gradle版本后ProGuard/R8出现缺失类报错

嗨,我之前升级Android构建工具链的时候也碰到过类似的R8缺失类问题,先帮你理清楚你做的版本变更,再给你几个实用的排查方向:

你完成的版本升级内容

  • Android应用插件:com.android.application 从 8.1.1 升级到 8.8.0
  • Kotlin Android插件:org.jetbrains.kotlin.android 从 1.9.10 升级到 2.1.0
  • KSP插件:com.google.devtools.ksp 从 1.9.10-1.0.13 升级到 2.1.0-1.0.29
  • Gradle分发版本:从 distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip 升级到 distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip

遇到的错误信息

Missing classes detected while running R8. Please add the missing cla...(注:你提供的报错内容有截断,建议先补全完整的缺失类名称)

排查与解决方向

  1. 补全R8/ProGuard的Keep规则
    先把报错里的完整缺失类名找出来,然后在项目的proguard-rules.pro文件中添加对应的保留规则。比如如果缺失的是com.example.MissingClass,就添加:

    -keep class com.example.MissingClass { *; }
    

    如果是整个包下的类都出现缺失,也可以用通配符批量处理:

    -keep class com.example.** { *; }
    
  2. 校验第三方依赖的兼容性
    高版本的构建插件和Gradle对依赖的兼容性要求更严格,你可以逐个检查项目中的第三方依赖,看看有没有未适配Kotlin 2.1.0、Gradle 8.10.2的旧库。优先把这些依赖更新到官方最新版本,很多时候兼容性问题会随着依赖升级解决。

  3. 临时关闭R8严格模式(仅用于排查)
    如果只是想先绕过这个问题验证其他功能,可以在项目根目录的gradle.properties中添加以下配置:

    android.enableR8.fullMode=false
    

    注意:这个只是临时排查方案,不建议长期使用,因为R8的fullMode能有效优化包体积和运行性能。

  4. 检查KSP生成代码的编译路径
    你同步升级了KSP版本,要确认KSP生成的代码是否被正确纳入编译扫描范围。部分版本升级可能会导致KSP的生成目录配置变化,你可以在模块的build.gradle.kts(或build.gradle)文件中检查KSP相关配置,确保生成的类能被R8正确识别。

备注:内容来源于stack exchange,提问作者Pavlo Kravchenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 06:39:29