From 68d5e43ad3de89411280bd08a71cc860857abaf6 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Fri, 21 Nov 2014 12:17:17 +0300 Subject: [PATCH] Android Gradle Plugin 0.14.4 breaks Kotlin #KT-6310 Fixed --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 5 ++++- .../plugin/android/AndroidGradleWrapper.groovy | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 69ffeac6bbb..c16773e2189 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -228,7 +228,10 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler): Plug javaSourceList.add(AndroidGradleWrapper.getJavaSrcDirs(buildTypeSourceSet)) kotlinTask.source(getExtention(buildTypeSourceSet, "kotlin").getKotlin()) } - javaSourceList.add(Callable{ variant.getProcessResources().getSourceOutputDir() }) + + for (resourceFolder in AndroidGradleWrapper.getRClassFolder(variant)) { + javaSourceList.add(Callable{ resourceFolder }) + } javaSourceList.add(Callable{ variant.getGenerateBuildConfig()?.getSourceOutputDir() }) javaSourceList.add(Callable{ variant.getAidlCompile().getSourceOutputDir() }) javaSourceList.add(Callable{ variant.getRenderscriptCompile().getSourceOutputDir() }) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy index da10fd1eaa6..e8c6f5acd90 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy @@ -2,6 +2,8 @@ package org.jetbrains.kotlin.gradle.plugin.android import com.android.build.gradle.BasePlugin import com.android.build.gradle.api.ApkVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.BaseVariantOutput import org.gradle.api.tasks.util.PatternFilterable import org.jetbrains.annotations.NotNull @@ -45,4 +47,18 @@ class AndroidGradleWrapper { static def List getProductFlavorsNames(ApkVariant variant) { return variant.getProductFlavors().iterator().collect { it.getName() } } + + @NotNull + static def List getRClassFolder(BaseVariant variant) { + def list = new ArrayList() + if (variant.getMetaClass().getMetaMethod("getProcessResources")) { + list.add(variant.getProcessResources().getSourceOutputDir()) + } + else { + for (BaseVariantOutput variantOutput : variant.getOutputs()) { + list.add(variantOutput.processResources.sourceOutputDir) + } + } + return list + } }