Плагин 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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