From 483218e491dac9af58c40f16626224e376f4b3be Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Mon, 5 Jun 2017 19:16:31 +0300 Subject: [PATCH] Fix for the Databinding issue where the kapt task started to early, not letting the Databinding pre-process the project. --- .../gradle/plugin/android/Android25ProjectHandler.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/agp25/kotlin/org/jetbrains/kotlin/gradle/plugin/android/Android25ProjectHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/agp25/kotlin/org/jetbrains/kotlin/gradle/plugin/android/Android25ProjectHandler.kt index 41bbd6fd282..4f5557cb5b9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/agp25/kotlin/org/jetbrains/kotlin/gradle/plugin/android/Android25ProjectHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/agp25/kotlin/org/jetbrains/kotlin/gradle/plugin/android/Android25ProjectHandler.kt @@ -4,7 +4,9 @@ import com.android.build.gradle.* import com.android.build.gradle.api.* import com.android.builder.model.SourceProvider import org.gradle.api.Project +import org.gradle.api.file.FileCollection import org.gradle.api.tasks.compile.AbstractCompile +import org.jetbrains.kotlin.com.intellij.util.ReflectionUtil import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin import org.jetbrains.kotlin.gradle.internal.KaptTask @@ -131,9 +133,16 @@ class Android25ProjectHandler(kotlinConfigurationTools: KotlinConfigurationTools ) { val kaptSourceOutput = project.fileTree(kaptTask.destinationDir).builtBy(kaptTask) variantData.registerExternalAptJavaOutput(kaptSourceOutput) + variantData.dataBindingDependencyArtifactsIfSupported?.let { kaptTask.dependsOn(it) } } } + //TODO once the Android plugin reaches its 3.0.0 release, consider compiling against it (remove the reflective call) + private val BaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection? + get() = ReflectionUtil.findMethod( + this::class.java.methods.toList(), + "getDataBindingDependencyArtifacts")?.invoke(this) as? FileCollection + override fun wrapVariantDataForKapt(variantData: BaseVariant): KaptVariantData = KaptVariant(variantData) } \ No newline at end of file