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

添加KSP后出现':app:kspDebugKotlin'任务创建失败问题求助

问题

在Kotlin项目中集成Android Room时添加了KSP,构建时报错:

Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Could not create task ':app:kspDebugKotlin'.
   > Cannot query the value of task ':app:compileDebugKotlin' property 'moduleName' because it has no value available.

项目配置如下:

项目级 build.gradle

plugins {
    id("com.android.application") version "8.1.2" apply false
    id("org.jetbrains.kotlin.android") version "1.9.0" apply false
    id("com.google.devtools.ksp") version "1.8.21-1.0.11" apply false
}

模块级 build.gradle

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.devtools.ksp")
}

android {
    namespace = "com.prueba.myapplication2"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.prueba.myapplication2"
        minSdk = 24
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

dependencies {
    val room_version = "2.6.1"

    implementation("androidx.room:room-runtime:$room_version")
    annotationProcessor("androidx.room:room-compiler:$room_version")
    ksp("androidx.room:room-compiler:$room_version")

    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")

    implementation("androidx.core:core-ktx:1.9.0")
    implementation("androidx.appcompat:appcompat:1.6.1")
    implementation("com.google.android.material:material:1.10.0")
    implementation("androidx.constraintlayout:constraintlayout:2.1.4")
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.5")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}

添加KSP前项目可正常运行,日志无代码行指向错误。

解决方案

1. 对齐KSP与Kotlin版本

KSP版本必须和项目使用的Kotlin版本严格匹配,你当前用的Kotlin是1.9.0,但KSP是1.8.21-1.0.11(对应Kotlin 1.8.21),版本不兼容导致构建任务异常。

修改项目级build.gradle中的KSP插件版本,换成对应Kotlin 1.9.0的版本,比如:

plugins {
    id("com.android.application") version "8.1.2" apply false
    id("org.jetbrains.kotlin.android") version "1.9.0" apply false
    id("com.google.devtools.ksp") version "1.9.0-1.0.13" apply false
}

注:KSP版本格式为[Kotlin版本]-[KSP版本],可根据需求选择对应Kotlin 1.9.0的最新KSP版本

2. 移除冗余的annotationProcessor依赖

对于Kotlin项目,使用KSP处理Room注解即可,无需同时保留annotationProcessor(这是Java项目用的注解处理器),删除模块级build.gradle中的这一行:

annotationProcessor("androidx.room:room-compiler:$room_version")

修改后的依赖部分:

dependencies {
    val room_version = "2.6.1"

    implementation("androidx.room:room-runtime:$room_version")
    ksp("androidx.room:room-compiler:$room_version")

    // 其他依赖不变...
}

3. 清理构建缓存并重新同步

完成上述修改后,执行以下操作确保配置生效:

  • 点击Android Studio工具栏的Build > Clean Project
  • 然后点击File > Sync Project with Gradle Files
  • 最后执行Build > Rebuild Project

这样就能解决构建错误,正常使用Room和KSP了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:00:34