Referencia no resuelta kapt y ksp en Android Studio al intentar realizar la configuración para el uso de la base de datos local ROOM
Recientemente comencé a aprender programación en Android Studio Kotlin y después de leer algunos tutoriales sobre el lenguaje Kotlin y crear una interfaz de usuario en Android Studio, decidí comenzar a aprender cómo usar la base de datos ROOM. Después de algunas pruebas para realizar la configuración buscando en Internet diferentes tutoriales en YouTube o varios blogs, finalmente decidí adoptar un enfoque más formal y leer la documentación. Sin embargo, para mi decepción, después de que logré deshacerme de algunos errores, todavía me encontré con el siguiente error: "Kap de referencia no resuelto" y "ksp de referencia no resuelto" en mi archivo build.gradle.kts (Módulo: aplicación). El proyecto en el que trabajo es completamente nuevo excepto las modificaciones que agregué en el archivo antes mencionado. Agrego el contenido del archivo a continuación.
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.example.useofroomdatabase"
compileSdk = 34
defaultConfig {
applicationId = "com.example.useofroomdatabase"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
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"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
implementation("androidx.activity:activity-compose:1.8.2")
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
val room_version = "2.6.1"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor("androidx.room:room-compiler:$room_version")
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$room_version")
// To use Kotlin Symbol Processing (KSP)
ksp("androidx.room:room-compiler:$room_version")
// optional - Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:$room_version")
// optional - RxJava2 support for Room
implementation("androidx.room:room-rxjava2:$room_version")
// optional - RxJava3 support for Room
implementation("androidx.room:room-rxjava3:$room_version")
// optional - Guava support for Room, including Optional and ListenableFuture
implementation("androidx.room:room-guava:$room_version")
// optional - Test helpers
testImplementation("androidx.room:room-testing:$room_version")
// optional - Paging 3 Integration
implementation("androidx.room:room-paging:$room_version")
}
Entonces, para resumir, tengo 2 preguntas para mi mejor aclaración. En primer lugar, ¿para qué se utilizan estos 2 conceptos (kapt y ksp)? Y en segundo lugar, ¿cuál es el problema en mi código y cómo puedo solucionarlo para continuar con mi práctica? Gracias de antemano.
PD: me inspiré en esta documentación: https://developer.android.com/training/data-storage/room#kts
Actualización posterior: finalmente logré importar el módulo kapt. Todavía no sé cómo deshacerme del error de "referencia no resuelta" para el módulo ksp, pero por lo que aprendí, las cosas también deberían funcionar solo con kapt, tal vez más lento, pero por ahora está bien. Hice los cambios desde el principio de este enlace: https://www.youtube.com/watch?v=lkGIj1xSpFY
Finalmente, podría ser algo relacionado con la compatibilidad de versiones entre los módulos y Kotlin u otros aspectos relacionados con Android Studio en los que profundizaré.
Simplemente realice los cambios mencionados a continuación.
build.gradle a nivel de módulo
plugins {
id("com.google.devtools.ksp")
}
build.gradle a nivel de proyecto
plugins {
id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false
}
Para una mejor comprensión consulte esta documentación.