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

使用Kotlin DSL构建脚本时无法为Room启用KSP的问题

解决方案:KSP与Room集成的版本兼容问题

问题根源

你遇到的Unable to load class 'org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData'错误,核心原因是KSP版本与项目使用的Kotlin版本不匹配。KSP对版本一致性要求严格,其版本号的前半段必须和项目中Kotlin插件的版本完全对齐。你的项目使用Kotlin 1.8.21,但KSP版本是1.8.10-1.0.9,版本不匹配导致类加载失败。

具体修复步骤

1. 更新KSP版本到匹配Kotlin 1.8.21的版本

修改libs.version.toml文件中的ksp版本号,替换为对应Kotlin 1.8.21的KSP版本:

[versions]
# 其他版本保留不变
ksp = "1.8.21-1.0.11"

2. 清理项目级build.gradle.kts中的重复KSP插件配置

移除项目级文件中重复的KSP插件声明,只保留一种方式(推荐使用别名):

@Suppress("DSL_SCOPE_VIOLATION")
plugins {
    alias(libs.plugins.androidApplication) apply false
    alias(libs.plugins.kotlinAndroid) apply false
    alias(libs.plugins.kspRoom) apply false
    // 移除下面这行重复的配置
    // id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false
}

3. 调整模块级build.gradle.kts的Room依赖配置

替换annotationProcessor为ksp,并移除原有的annotationProcessor(libs.androidx.room.compiler)依赖:

dependencies {
    // 其他依赖保留不变

    // Room相关依赖调整
    implementation(libs.androidx.room.runtime)
    // 移除这行
    // annotationProcessor(libs.androidx.room.compiler)
    ksp(libs.androidx.room.compiler) // 启用这行
    implementation(libs.androidx.room.ktx)
    implementation(libs.androidx.room.paging)
}

4. 清理缓存并重新构建

  • 在Android Studio中执行File > Invalidate Caches... > Invalidate and Restart
  • 或在终端运行命令:
    ./gradlew clean build --refresh-dependencies
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:45:21