diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 56f150fedbd..18f8692e884 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -365,7 +365,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t val variantDataName = variantData.getName() logger.kotlinDebug("Process variant [$variantDataName]") - val javaTask = variantData.javaCompileTask + val javaTask = AndroidGradleWrapper.getJavaCompile(variantData) val kotlinTaskName = "compile${variantDataName.capitalize()}Kotlin" val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName) @@ -432,12 +432,16 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t javaTask.dependsOn(kotlinTaskName) - val kaptManager = AnnotationProcessingManager(kotlinTask, javaTask, aptFiles.toSet(), aptOutputDir, aptWorkingDir) - kotlinTask.storeKaptAnnotationsFile(kaptManager) + val kaptManager = if (javaTask is JavaCompile) { + val manager = AnnotationProcessingManager(kotlinTask, javaTask, aptFiles.toSet(), aptOutputDir, aptWorkingDir) + kotlinTask.storeKaptAnnotationsFile(manager) + manager + } + else null javaTask doFirst { javaTask.setClasspath(javaTask.getClasspath() + project.files(kotlinTask.property("kotlinDestinationDir"))) - kaptManager.setupKapt() + kaptManager?.setupKapt() } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy index 1644347f647..58cc0f0718f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy @@ -6,6 +6,7 @@ import com.android.build.gradle.api.ApkVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.TestVariant import org.gradle.api.internal.DefaultDomainObjectSet +import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.util.PatternFilterable import org.jetbrains.annotations.NotNull @@ -43,6 +44,11 @@ class AndroidGradleWrapper { return variant.getBuildType().getName() } + @NotNull + static def AbstractCompile getJavaCompile(Object baseVariantData) { + return baseVariantData.javaCompileTask + } + @NotNull static def Set getJavaSrcDirs(Object androidSourceSet) { return androidSourceSet.getJava().getSrcDirs()