Я хочу обработать сгенерированный .apk после сборки gradle. Однако место, где находится сгенерированный файл, зависит от вкуса продукта и типа сборки. Итак, как я могу получить их в задачу?
Вот соответствующий раздел build.gradle:
productFlavors {
normal { }
tinybuild {}
}
// The following two blocks copy the generated .apk to server so that tablet you're working on can download it fast
task copyDebugAPK(type: Exec) {
workingDir "$projectDir/.."
commandLine 'python', 'myscript.py', 'script parameter'
}
afterEvaluate {
packageNormalDebug.finalizedBy(copyDebugAPK)
packageTinybuildDebug.finalizedBy(copyDebugAPK)
}
Я мог бы просто объявить несколько задач, по одной для каждого варианта / сборки, но я почти уверен, что даже использование сценария в контексте, зависящем от вкуса / типа сборки, должно предоставить мне соответствующие поля прямо в задаче. Я ошибся?
Обновлено: после предложения Роберта я изменил свою задачу так:
task copyDebugAPK(type: Exec) {
android.applicationVariants.all { variant ->
print("${com.android.build.OutputFile.ABI}")
print("${variant.name}")
print("${variant.flavorName}")
print("${variant.versionName}")
workingDir "$projectDir/.."
commandLine 'python', 'myscript.py', '${variant.name}'
}
}
Однако распечатки не печатаются. Я также добавил переменные во ввод скрипта, но они не разрешены.
Вы читали stackoverflow.com/a/46987692/150978?