Я не совсем понимаю, как получить конфигурацию 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")
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-variants