Anders Carlsen
09/16/2023, 10:42 AMExecution failed for task ':moduleName:kaptKotlinJvm'.
> Cannot query the value of this provider because it has no value available.
The value of this provider is derived from:
- task ':moduleName:kaptGenerateStubsKotlinJvm' property 'kotlinCompileDestinationDirectory'
If I remove Kapt plugin it works on jvm, but the Hilt kapt tasks won’t be run and I get runtime error when using viewModel on Android.
this is the build.gradle.kts file:
plugins {
kotlin("multiplatform")
id("com.android.library")
kotlin("kapt")
}
kotlin {
jvm()
androidTarget()
sourceSets {
val commonMain by getting {
dependencies {
implementation(Deps.kotlinCoroutines)
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jvmMain by getting {
dependencies {
implementation(Deps.voyagerNavigator)
implementation(Deps.voyagerKoin)
}
}
val androidMain by getting {
kotlin.srcDir("src/commonMain/kotlin")
dependencies {
implementation(Deps.kotlinCoroutinesAndroid)
implementation(Deps.androidxLifecycleViewModel)
implementation(Deps.googleHilt)
configurations["kapt"]?.dependencies?.add(project.dependencies.create(Deps.googleHiltCompiler))
}
}
}
}
android {
namespace = "package"
compileSdk = ConfigData.androidCompileSdkVersion
defaultConfig {
minSdk = ConfigData.androidMinSdkVersion
}
sourceSets["main"].apply {
manifest.srcFile("src/androidMain/AndroidManifest.xml")
res.srcDirs("src/androidMain/resources")
resources.srcDirs("src/commonMain/resources")
}
compileOptions {
sourceCompatibility = Versions.javaVersion
targetCompatibility = Versions.javaVersion
}
kotlin {
jvmToolchain(Versions.javaJvmTarget.toInt())
}
}
tapchicoma
09/17/2023, 4:39 PMMikhail
10/27/2023, 1:49 PMtapchicoma
10/27/2023, 2:25 PMMikhail
10/27/2023, 2:39 PMtapchicoma
10/27/2023, 2:39 PMtapchicoma
10/27/2023, 2:40 PMtapchicoma
10/27/2023, 2:41 PMtapchicoma
10/27/2023, 2:42 PMMikhail
10/27/2023, 2:49 PMtapchicoma
10/27/2023, 2:54 PMwithJava()
which is not working with JVM + Android. Probably we could add some switch that should be explicitly turned on when all AP generates Kotlin code.Anders Carlsen
10/27/2023, 2:55 PMif (gradle.startParameter.taskNames.contains("desktop:run")) {
println("Running without kapt")
} else {
println("Running with kapt for task ${gradle.startParameter.taskNames.firstOrNull()}")
apply(plugin = "kotlin-kapt")
}