From dce6a4f86987bb37704ef27f64fa0f0ef4fb1409 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Mon, 29 May 2017 20:23:10 +0300 Subject: [PATCH] Fix UnsupportedOperationException caused by mutation of FileCollection --- .../plugin/android/Android25ProjectHandler.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 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 1d2128878b4..4b2cbef70d1 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 @@ -38,15 +38,17 @@ class Android25ProjectHandler(kotlinConfigurationTools: KotlinConfigurationTools kotlinTask: KotlinCompile, kotlinAfterJavaTask: KotlinCompile?) { - val preJavaKotlinOutput = project.files().builtBy(kotlinTask) - if (kotlinAfterJavaTask == null) { - preJavaKotlinOutput.add(project.files(kotlinTask.destinationDir)) - } - if (Kapt3GradleSubplugin.isEnabled(project)) { - // Add Kapt3 output as well, since there's no SyncOutputTask with the new API - val kaptClasssesDir = Kapt3KotlinGradleSubplugin.getKaptClasssesDir(project, getVariantName(variantData)) - preJavaKotlinOutput.add(project.files(kaptClasssesDir)) + val preJavaKotlinOutputFiles = mutableListOf().apply { + if (kotlinAfterJavaTask == null) { + add(kotlinTask.destinationDir) + } + if (Kapt3GradleSubplugin.isEnabled(project)) { + // Add Kapt3 output as well, since there's no SyncOutputTask with the new API + val kaptClasssesDir = Kapt3KotlinGradleSubplugin.getKaptClasssesDir(project, getVariantName(variantData)) + add(kaptClasssesDir) + } } + val preJavaKotlinOutput = project.files(*preJavaKotlinOutputFiles.toTypedArray()).builtBy(kotlinTask) val preJavaClasspathKey = variantData.registerPreJavacGeneratedBytecode(preJavaKotlinOutput) kotlinTask.dependsOn(variantData.getSourceFolders(SourceKind.JAVA))