从 kapt 迁移到 KSP 后 Gradle 同步失败

tze*_*ian 5 android gradle kotlin build.gradle android-gradle-plugin

我正在尝试按照官方指南从 kapt 迁移到 KSP 。

同步项目时出现以下错误。

无法找到方法 ''org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation.getTarget()'' 'org.jetbrains.kotlin.gradle.plugin.mpp .KotlinAndroidTarget org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation.getTarget()'

Gradle 的依赖项缓存可能已损坏(这有时会在网络连接超时后发生。)

重新下载依赖项并同步项目(需要网络) Gradle 构建过程(守护进程)的状态可能已损坏。停止所有 Gradle 守护进程可能会解决此问题。

停止 Gradle 构建过程(需要重新启动) 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的 Gradle 版本不兼容。

如果 Gradle 进程损坏,您还可以尝试关闭 IDE,然后终止所有 Java 进程。

我已经尝试了建议的解决方案,但这些都不起作用。这是我的app/build.gradle文件:

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "kotlin-parcelize"
    id "com.google.devtools.ksp" version "1.8.21-1.0.11"
    id "com.google.gms.google-services"
    id "com.google.firebase.crashlytics"
    id "com.google.firebase.appdistribution"
    id "com.google.firebase.firebase-perf"
}

...

dependencies {
    implementation "androidx.room:room-runtime:2.5.1"
    ksp "androidx.room:room-compiler:2.5.1"

    implementation "com.squareup.moshi:moshi:1.15.0"
    implementation "com.squareup.moshi:moshi-adapters:1.14.0"
    ksp "com.squareup.moshi:moshi-kotlin-codegen:1.14.0"
...
Run Code Online (Sandbox Code Playgroud)

没有使用kaptksp其他任何地方,我什至尝试在依赖项中替换为kspkapt然后导入ksp,但仍然遇到相同的错误。

有什么想法吗?

tze*_*ian 7

事实证明,我应该在项目 build.gradle.

plugins {
    id "com.google.devtools.ksp" version "1.8.21-1.0.11" apply false
}
Run Code Online (Sandbox Code Playgroud)

并替换为模块中的 build.gradle

id "com.google.devtools.ksp" version "1.8.21-1.0.11"
Run Code Online (Sandbox Code Playgroud)

id "com.google.devtools.ksp"
Run Code Online (Sandbox Code Playgroud)