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

