[英]Kapt to KSP migration errors
I am getting an error message when I try to migrate an android project using kapt
to KSP
.当我尝试使用
kapt
将 android 项目迁移到KSP
时,我收到一条错误消息。
Error message错误信息
Unable to find method ''void org.jetbrains.kotlin.gradle.tasks.KotlinCompile.<init>(org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions)''
'void org.jetbrains.kotlin.gradle.tasks.KotlinCompile.<init>(org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions)'
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
Currently, the following libraries are using kapt
.目前,以下库正在使用
kapt
。
build.gradle
plugins {
id "com.android.application"
id "kotlin-android"
id "kotlin-kapt"
id "dagger.hilt.android.plugin"
id "com.google.devtools.ksp" version "1.6.10-1.0.4"
}
dependencies {
// Hilt
implementation "com.google.dagger:hilt-android:$rootProject.hiltVersion"
kapt "com.google.dagger:hilt-compiler:$rootProject.hiltVersion"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:$rootProject.hiltLifecycleViewModelVersion"
kapt "androidx.hilt:hilt-compiler:$rootProject.hiltCompilerVersion"
// KSP
// implementation "com.google.devtools.ksp:symbol-processing-api:1.6.10-1.0.4"
// Moshi
implementation "com.squareup.moshi:moshi:$rootProject.moshiVersion"
implementation "com.squareup.moshi:moshi-kotlin:$rootProject.moshiKotlinVersion"
kapt "com.squareup.moshi:moshi-kotlin-codegen:$rootProject.moshiKotlinCodegenVersion"
// ksp "com.squareup.moshi:moshi-kotlin-codegen:1.13.0"
// Room
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
implementation "androidx.room:room-ktx:$rootProject.roomVersion"
annotationProcessor "androidx.room:room-compiler:$rootProject.roomVersion"
ksp "androidx.room:room-compiler:$rootProject.roomVersion"
androidTestImplementation "androidx.room:room-testing:$rootProject.roomVersion"
}
For more details, The repo is hosted here - https://github.com/Abhimanyu14/finance-manager有关更多详细信息,该 repo 托管在这里 - https://github.com/Abhimanyu14/finance-manager
As mentioned in the question, I am using the following libraries that are using kapt
.如问题中所述,我正在使用以下使用
kapt
的库。
From the KSP Docs , I found out Hilt
is not yet supported.从KSP Docs中,我发现
Hilt
尚不受支持。 (as of 25-06-2022). (截至 2022 年 6 月 25 日)。
So, I would need to use both kapt
and hilt
in my project.所以,我需要在我的项目中同时使用
kapt
和hilt
。
The following build.gradle
does that,下面的
build.gradle
做到了,
plugins {
id "kotlin-kapt"
id "dagger.hilt.android.plugin"
id "com.google.devtools.ksp" version "1.6.21-1.0.6"
}
// Hilt
implementation "com.google.dagger:hilt-android:$rootProject.hiltVersion"
kapt "com.google.dagger:hilt-compiler:$rootProject.hiltVersion"
//ksp "com.google.dagger:hilt-compiler:$rootProject.hiltVersion"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:$rootProject.hiltLifecycleViewModelVersion"
kapt "androidx.hilt:hilt-compiler:$rootProject.hiltCompilerVersion"
// ksp "androidx.hilt:hilt-compiler:$rootProject.hiltCompilerVersion"
// KSP
implementation "com.google.devtools.ksp:symbol-processing-api:1.6.21-1.0.6"
// Moshi
implementation "com.squareup.moshi:moshi:$rootProject.moshiVersion"
implementation "com.squareup.moshi:moshi-kotlin:$rootProject.moshiKotlinVersion"
// kapt "com.squareup.moshi:moshi-kotlin-codegen:$rootProject.moshiKotlinCodegenVersion"
ksp "com.squareup.moshi:moshi-kotlin-codegen:1.13.0"preferences:$rootProject.datastorePreferencesVersion"
// Room
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
implementation "androidx.room:room-ktx:$rootProject.roomVersion"
annotationProcessor "androidx.room:room-compiler:$rootProject.roomVersion"
// kapt "androidx.room:room-compiler:$rootProject.roomVersion"
ksp "androidx.room:room-compiler:$rootProject.roomVersion"
androidTestImplementation "androidx.room:room-testing:$rootProject.roomVersion"
Library versions库版本
roomVersion = "2.5.0-alpha02"
moshiVersion = "1.13.0"
hiltVersion = "2.42"
hiltPluginVersion = "2.40.1"
hiltLifecycleViewModelVersion = "1.0.0-alpha03"
hiltCompilerVersion = "1.0.0"
Also encountered this error - Room - Schema export directory is not provided to the annotation processor so we cannot export the schema也遇到了这个错误 - Room - 模式导出目录未提供给注释处理器,因此我们无法导出模式
And this solution helped - https://stackoverflow.com/a/71451314/9636037这个解决方案有帮助 - https://stackoverflow.com/a/71451314/9636037
ksp {
arg('room.schemaLocation', "$projectDir/schemas")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.