Closed
Description
Including the Gradle compiler plugin id("love.forte.plugin.suspend-transform")
(version 2.1.0-0.11.0
used with Kotlin 2.1.0
) causes the Android build (or to be exact: even the Gradle project sync, which happens during compilation) to fail with this error message: Source set 'androidMain' of project '<module name>' is part of several compilations [debug, release]
.
Interestingly, even when the configuration is disabled:
suspendTransform {
enabled = false // <--- Disabled
includeRuntime = false // <--- Disabled
useDefault()
}
This is an example build.gradle.kts
of an Android project:
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
id("maven-publish")
id("com.github.ben-manes.versions")
id("love.forte.plugin.suspend-transform")
}
repositories {
mavenCentral()
maven("https://jitpack.io")
}
android {
compileSdk = 34
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdk = 28
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
packaging {
resources {
excludes += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
}
}
}
kotlin {
androidTarget {
publishLibraryVariants("release")
}
sourceSets {
val androidMain by getting {
dependencies {
api(project(":waltid-libraries:crypto:waltid-crypto"))
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0")
implementation("io.github.oshai:kotlin-logging:7.0.4")
}
}
val androidInstrumentedTest by getting {
dependencies {
implementation(kotlin("test"))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.1")
implementation("androidx.test.ext:junit:1.2.1")
implementation("androidx.test:runner:1.6.1")
implementation("androidx.test:rules:1.6.1")
}
}
}
}
This is the Gradle stack trace:
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project '<project name>'.
> Source set 'androidUnitTest' of project '<project name>' is part of several compilations [debugUnitTest, releaseUnitTest]
* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project '<project name>'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:84)
...
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
Caused by: java.lang.IllegalStateException: Source set 'androidUnitTest' of project '<project name>' is part of several compilations [debugUnitTest, releaseUnitTest]
at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.configureMultiplatformDependency(SuspendTransformGradlePlugin.kt:202) // <------------------------------
at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.configureDependencies$lambda$3(SuspendTransformGradlePlugin.kt:104)
at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.withPluginWhenEvaluatedConf$lambda$8(SuspendTransformGradlePlugin.kt:130)
at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.whenEvaluated$lambda$4(SuspendTransformGradlePlugin.kt:117)
at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.whenEvaluated$lambda$5(SuspendTransformGradlePlugin.kt:117)
at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:124)
at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:173)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
...
at jdk.proxy1/jdk.proxy1.$Proxy74.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:247)
at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:244)
at org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1604)
at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:253)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
...
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
CONFIGURE FAILED in 2s
The problem seems to occur at love.forte.plugin.suspendtrans.gradle.SuspendTransformGradlePluginKt.configureMultiplatformDependency(SuspendTransformGradlePlugin.kt:202)
.