gpt4 book ai didi

android - 循环中的 Gradle 复制和重命名

转载 作者:行者123 更新时间:2023-12-03 03:48:17 27 4
gpt4 key购买 nike

我正在使用 Android Studio 3。

对于每种口味,我想复制 mapping.txt并重命名它。

我的 Gradle 任务:

task deployApks(type: Copy) {
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.outputs.all {
def flavor = variant.productFlavors.name.get(0)

def dirApk = System.getProperty("user.dir") + '/app/build/' + flavor + '/release/'
def dirMapping = System.getProperty("user.dir") + '/app/build/outputs/mapping/' + flavor + '/release/'

//copy apk and mapping.txt
from dirApk, dirMapping
include '*-release.apk', 'mapping.txt'
into dirDeploy

//rename mapping.txt
from dirDeploy
include 'mapping.txt'
into dirDeploy
rename 'mapping.txt', 'mapping-' + flavor + '.txt'
println("Rename mapping.txt tomapping-" + flavor + ".txt")
}
}
}
}

我想要的部署目录:
  • flavor1-release.apk
  • 映射 flavor 1.txt
  • flavor2-release.apk
  • 映射 flavor 2.txt

  • 我得到什么:
  • flavor1-release.apk
  • 映射 flavor 1.txt
  • flavor2-release.apk

  • gradle 复制是异步的吗?

    看起来如果在所有副本之后完成重命名。

    最佳答案

    你可能不知道,gradle build 包含 3 个阶段:

  • 初始化
  • 配置
  • 执行

  • 任务(包括您使用的 Copy)操作(任务是按顺序运行的操作的集合)在第二阶段配置。夏娃如果你把循环放在任务的主体中,最后一次迭代将获胜。最简单的方法是将您的任务更改为以下内容(手动复制):
    task deployApks {
    doLast {
    android.applicationVariants.all { variant ->
    if (variant.buildType.name == 'release') {
    variant.outputs.all {
    def flavor = variant.productFlavors.name.get(0)

    def dirApk = System.getProperty("user.dir") + '/app/build/' + flavor + '/release/'
    def dirMapping = System.getProperty("user.dir") + '/app/build/outputs/mapping/' + flavor + '/release/'

    //copy apk and mapping.txt
    copy {
    from dirApk, dirMapping
    include '*-release.apk', 'mapping.txt'
    into dirDeploy
    rename 'mapping.txt', 'mapping-' + flavor + '.txt'
    }
    }
    }
    }
    }
    }

    如果这样可以解决问题 - (您不需要任务缓存)您可以使用。否则需要配置 Copy适本地执行任务,甚至编写自定义任务。

    关于android - 循环中的 Gradle 复制和重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253559/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com