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

使用Room数据库构建项目出现java.lang.NoClassDefFoundError报错如何解决

报错信息
Caused by: java.lang.NoClassDefFoundError: androidx/room/compiler/processing/XProcessingStep
        at androidx.room.RoomProcessor.initSteps(RoomProcessor.kt:43)
        at com.google.auto.common.BasicAnnotationProcessor.init(BasicAnnotationProcessor.java:118)
        at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.init(incrementalProcessors.kt:38)
        at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.init(annotationProcessing.kt:156)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:500)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:79)
        ... 27 more
Caused by: java.lang.ClassNotFoundException: androidx.room.compiler.processing.XProcessingStep
        ... 40 more
问题根因

这个错误是Room注解处理器运行时找不到核心处理类XProcessingStep导致的,核心诱因都是依赖版本不匹配:

  • 所有Room相关依赖的版本不一致,比如核心库用了2.6.1,但是编译器用了2.4.0
  • Kotlin版本、Android Gradle Plugin(AGP)版本和Room版本不兼容,高版本Room对构建环境的版本有最低要求
  • 项目内其他注解处理依赖(比如Hilt、AutoService)和Room的依赖冲突,覆盖了Room需要的XProcessing相关类
  • 构建缓存异常,导致类文件丢失
解决步骤
  • 统一所有Room相关依赖的版本,Kotlin项目必须用kapt引入Room编译器依赖,不能用annotationProcessor,示例配置如下:
    // 模块级build.gradle
    dependencies {
        def room_version = "2.6.1"
        implementation "androidx.room:room-runtime:$room_version"
        kapt "androidx.room:room-compiler:$room_version"
        implementation "androidx.room:room-ktx:$room_version"
    }
    
  • 匹配构建环境版本和Room版本要求:
    • Room 2.5.x及以上版本要求AGP >= 7.2.0,Kotlin >= 1.7.0
    • Room 2.6.x及以上版本要求AGP >= 7.4.0,Kotlin >= 1.8.0
      根据你使用的Room版本升级对应AGP和Kotlin版本即可
  • 排查其他注解依赖冲突,如果项目引入了Hilt,需要保证Hilt版本和Room版本适配,比如Hilt 2.44+对应Kotlin 1.8+,和Room 2.6.x兼容
  • 清理缓存后重建项目:依次执行Build -> Clean Project,File -> Invalidate Caches / Restart,之后重新触发构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:24:07