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
相关产品推荐
相关产品推荐

