From 0a808528b70b6e6d9327050cc858b3ffcbc6cf56 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Mon, 16 Oct 2017 21:47:26 +0300 Subject: [PATCH] Fix missing ReflectUtil, call the ctor through reflection manually. --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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 80381dbb636..932066f705b 100755 --- 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 @@ -5,7 +5,6 @@ import com.android.build.gradle.BasePlugin import com.android.build.gradle.api.AndroidSourceSet import com.android.builder.model.SourceProvider import groovy.lang.Closure -import org.apache.tools.ant.util.ReflectUtil.newInstance import org.gradle.api.* import org.gradle.api.artifacts.Configuration import org.gradle.api.file.ConfigurableFileCollection @@ -456,12 +455,16 @@ internal open class KotlinAndroidPlugin( val legacyVersionThreshold = "2.5.0" - val variantProcessor = if (compareVersionNumbers(version, legacyVersionThreshold) < 0) + val variantProcessor = if (compareVersionNumbers(version, legacyVersionThreshold) < 0) { LegacyAndroidAndroidProjectHandler(kotlinTools) - else - newInstance( - Class.forName("org.jetbrains.kotlin.gradle.plugin.Android25ProjectHandler"), - arrayOf(kotlinTools.javaClass), arrayOf(kotlinTools)) as AbstractAndroidProjectHandler<*> + } + else { + val android25ProjectHandlerClass = Class.forName("org.jetbrains.kotlin.gradle.plugin.Android25ProjectHandler") + val ctor = android25ProjectHandlerClass.constructors.single { + it.parameterTypes.contentEquals(arrayOf(kotlinTools.javaClass)) + } + ctor.newInstance(kotlinTools) as AbstractAndroidProjectHandler<*> + } variantProcessor.handleProject(project) }