Skip to content

Commit 6d7fa73

Browse files
timofey-soloninSpace Team
authored and
Space Team
committed
Fix broken import in Android Studio
Placing a task in resources in AGP sources sets in afterEvaluate breaks import in Android Studio as it tries to resolve the task output before the task was executed. Instead we now pass resources task to processJavaRes directly ^KT-67806
1 parent b6297bf commit 6d7fa73

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/publication/KotlinAndroidTargetResourcesPublication.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
2727
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
2828
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublicationImpl
2929
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.assembleHierarchicalResources
30+
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.registerAssembleHierarchicalResourcesTaskProvider
3031
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.resourcesPublicationExtension
3132
import org.jetbrains.kotlin.gradle.plugin.sources.android.androidSourceSetInfo
3233
import org.jetbrains.kotlin.gradle.tasks.registerTask
@@ -158,21 +159,22 @@ internal fun KotlinAndroidTarget.setUpMultiplatformResourcesAndAssets(
158159
val legacyAgpVariant = compilation.androidVariant
159160
val legacyAgpVariantName = getVariantName(legacyAgpVariant)
160161
project.multiplatformExtension.resourcesPublicationExtension?.subscribeOnPublishResources(this) { resources ->
161-
val copyResourcesTask = compilation.assembleHierarchicalResources(
162+
val copyResourcesTask = compilation.registerAssembleHierarchicalResourcesTaskProvider(
162163
disambiguateName("${legacyAgpVariantName}Resources"),
163164
resources,
164165
)
165166

166-
if (AndroidGradlePluginVersion.current < "8.0.0") {
167-
// AGP [7.3-8) requires explicit dependsOn
168-
legacyAgpVariant.processJavaResourcesProvider.configure {
169-
it.dependsOn(copyResourcesTask)
170-
}
167+
legacyAgpVariant.processJavaResourcesProvider.configure { task ->
168+
task.from(copyResourcesTask.flatMap { it.outputDirectory })
171169
}
172170

173171
project.androidExtension.sourceSets.getByName(
174172
compilation.defaultSourceSet.androidSourceSetInfo.androidSourceSetName
175-
).resources.srcDir(copyResourcesTask)
173+
).resources.srcDir(
174+
copyResourcesTask.flatMap {
175+
it.outputDirectory.locationOnly
176+
}
177+
)
176178
}
177179

178180
project.multiplatformExtension.resourcesPublicationExtension?.subscribeOnAndroidPublishAssets(this) { assets ->

0 commit comments

Comments
 (0)