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