From bb53a1c3d2ef6501efc4a3395d370959f36090d0 Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Fri, 21 Sep 2018 10:16:43 +0100 Subject: [PATCH] Use new API from AGP to get JavaCompile task New API for getting the JavaCompile task has been added to AGP, and the old one is deprecated. It is now returning TaskProvider, which allows API users to avoid configuring tasks unnecessarily. This commit does not change anything functionally, it is only to avoid the warning message, as reporter in https://issuetracker.google.com/116198439. --- .../gradle/plugin/android/Android25ProjectHandler.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 42265b17659..56208ac3c93 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 @@ -88,9 +88,15 @@ class Android25ProjectHandler(kotlinConfigurationTools: KotlinConfigurationTools else -> null } - override fun getJavaTask(variantData: BaseVariant): AbstractCompile? = - @Suppress("DEPRECATION") // There is always a Java compile task -- the deprecation was for Jack - variantData.javaCompile + override fun getJavaTask(variantData: BaseVariant): AbstractCompile? { + @Suppress("DEPRECATION") // There is always a Java compile task -- the deprecation was for Jack + return variantData::class.java.methods.firstOrNull { it.name == "getJavaCompileProvider" } + ?.invoke(variantData) + .let { taskProvider -> + // org.gradle.api.tasks.TaskProvider is added in Gradle 4.8 + taskProvider!!::class.java.methods.firstOrNull { it.name == "get" }?.invoke(taskProvider) as AbstractCompile? + } ?: variantData.javaCompile + } override fun addJavaSourceDirectoryToVariantModel(variantData: BaseVariant, javaSourceDirectory: File) = variantData.addJavaSourceFoldersToModel(javaSourceDirectory)