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

R8因`lombok.NonNull`注解持续阻止签名打包问题求助

R8打包报错:缺失Lombok类问题排查求助

应用可正常构建运行,但执行Generate Signed App Bundle / APK...操作时触发R8报错:

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in missing_rules.txt

生成的missing_rules.txt内容如下:

# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn lombok.NonNull

已尝试以下操作但问题未解决:

  • 添加上述-dontwarn lombok.NonNull规则
  • 在proguard.cfg中追加宽松规则:
    -dontwarn lombok.**
    -keepattributes *Annotation*
    
  • 确认build.gradle中Lombok依赖配置正确:
    compileOnly 'org.projectlombok:lombok:1.18.36'
    annotationProcessor 'org.projectlombok:lombok:1.18.36'
    
  • 通过..\gradlew dependencies验证,Lombok仅存在于compileOnly和annotationProcessor依赖中

环境信息

Gradle版本:

------------------------------------------------------------
Gradle 8.9
------------------------------------------------------------

Build time:    2024-07-11 14:37:41 UTC
Revision:      d536ef36a19186ccc596d8817123e5445f30fef8

Kotlin:        1.9.23
Groovy:        3.0.21
Ant:           Apache Ant(TM) version 1.10.13 compiled on January 4 2023
Launcher JVM:  21.0.3 (JetBrains s.r.o. 21.0.3+-12282718-b509.11)
Daemon JVM:    C:\Program Files\Android\Android Studio\jbr (no JDK specified, using current Java home)
OS:            Windows 10 10.0 amd64

Android Gradle Plugin版本:8.7.3

解决建议

  • 用gradlew [模块名]:dependencyInsight --dependency lombok(替换[模块名]为你的实际模块)精准排查是否有第三方依赖间接引入Lombok编译时依赖,导致R8扫描到相关注解但找不到类
  • 在build.gradle的android块中添加R8配置,强制忽略缺失类检查:
    android {
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                android.r8 {
                    forceMissingClasses(false)
                }
            }
        }
    }
    
  • 升级Lombok至最新稳定版,避免版本兼容性问题
  • 执行gradlew clean清理项目缓存后重新尝试打包
  • 检查代码中是否存在手动导入lombok.NonNull而非通过Lombok注解生成的情况

内容的提问来源于stack exchange,提问作者sfinja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:12:16