Плагин Gradle Kotlin DSL получает варианты плагинов для AndroidAndroid

Форум для тех, кто программирует под Android
Anonymous
Плагин Gradle Kotlin DSL получает варианты плагинов для Android

Сообщение Anonymous »

Я пытаюсь написать плагин Gradle и зарегистрировать задачи для вариантов выпуска и отладки. Я следую официальным инструкциям здесь.
Я не совсем понимаю, как получить конфигурацию Android из проекта. Этот не компилируется:

Код: Выделить всё

     val variants = if (project.extensions.findByName("android")?.hasProperty("applicationVariants") == true) {
project.extensions.findByName("android")?.applicationVariants
} else {
project.extensions.findByName("android")?.libraryVariants
}

// Ensure variants is non-null before proceeding
(variants as? Iterable)?.all { variant ->
val variantUpper = variant.name.capitalize()

project.tasks.register("buildCargoNdk$variantUpper", CargoNdkBuildTask::class.java) {
group = "Build"
description = "Build rust library for variant ${variant.name}"
setVariant(variant.name)
extension = ext
}
}

project.tasks.whenTaskAdded { task ->
(variants as? Iterable)?.forEach { variant ->
val variantName = variant.name
val variantUpper = variantName.capitalize()
val preTasks = listOf("compile${variantUpper}Sources", "merge${variantUpper}JniLibFolders")

if (task.name in preTasks) {
task.dependsOn("buildCargoNdk$variantUpper")
}
}
}
Идея состоит в том, чтобы переписать эту версию Groovy на Kotlin DSL. Есть какие-нибудь указания?

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-variants

Вернуться в «Android»