我想在gradle构建后处理生成的.apk。但是,生成的文件所在的位置取决于产品风格和构建类型。那么我如何才能完成这项工作呢?
以下是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)
}
我可以简单地声明多个任务,一个用于每个flavor / build,但我很确定即使在flavor / build-type-dependent上下文中使用脚本也应该在任务中为我提供相关的字段。我错了吗?
编辑:在Robert的建议之后,我修改了我的任务:
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}'
}
}
但是,没有打印任何打印件。我还将变量添加到脚本输入中,但它们未解析。