diff --git a/libraries/tools/kotlin-android-extensions/pom.xml b/libraries/tools/kotlin-android-extensions/pom.xml
index 49be56a4d54..b2760c2d6c1 100644
--- a/libraries/tools/kotlin-android-extensions/pom.xml
+++ b/libraries/tools/kotlin-android-extensions/pom.xml
@@ -28,6 +28,12 @@
${project.version}
provided
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin
+ ${project.version}
+ provided
+
org.jetbrains.kotlin
kotlin-gradle-plugin-api
diff --git a/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt b/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt
index 08ab9df7beb..7d5fa452a69 100644
--- a/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt
+++ b/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt
@@ -16,12 +16,13 @@
package org.jetbrains.kotlin.android
-import org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin
-import org.gradle.api.Project
import com.android.build.gradle.BaseExtension
import com.android.build.gradle.api.AndroidSourceSet
+import org.gradle.api.Project
import org.gradle.api.tasks.compile.AbstractCompile
+import org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin
import org.jetbrains.kotlin.gradle.plugin.SubpluginOption
+import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
import org.w3c.dom.Document
import java.io.File
import javax.xml.parsers.DocumentBuilderFactory
@@ -48,7 +49,7 @@ public class AndroidSubplugin : KotlinGradleSubplugin {
addVariant(mainSourceSet)
- val flavorSourceSets = androidExtension.productFlavors.map { sourceSets.findByName(it.name) }.filterNotNull()
+ val flavorSourceSets = AndroidGradleWrapper.getProductFlavorsSourceSets(androidExtension).filterNotNull()
for (sourceSet in flavorSourceSets) {
addVariant(sourceSet)
}
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 d74ea6a739a..ce9ebc1c45a 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
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle.plugin.android
import com.android.build.gradle.BaseExtension
import com.android.build.gradle.BasePlugin
+import com.android.build.gradle.api.AndroidSourceSet
import com.android.build.gradle.api.ApkVariant
import com.android.build.gradle.api.BaseVariant
import com.android.build.gradle.api.TestVariant
@@ -67,6 +68,11 @@ class AndroidGradleWrapper {
return variant.getProductFlavors().iterator().collect { it.getName() }
}
+ @NotNull
+ static def List getProductFlavorsSourceSets(BaseExtension extension) {
+ return extension.productFlavors.iterator().collect { extension.sourceSets.findByName(it.name) }
+ }
+
@NotNull
static def DefaultDomainObjectSet getTestVariants(BaseExtension extension) {
if (extension.getMetaClass().getMetaMethod("getTestVariants")) {