在gradle任务中获得味道

时间:2018-04-15 17:27:55

标签: android gradle

我想在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}'
    }
}

但是,没有打印任何打印件。我还将变量添加到脚本输入中,但它们未解析。

0 个答案:

没有答案