gpt4 book ai didi

带有运行昨天版本时间戳的 Android Gradle 构建文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:33 25 4
gpt4 key购买 nike

下面是我的 Gradle 构建文件。问题。它运行昨天的 APK 而不是今天的。根本原因。我动态地将日期放在 apks 名称中——用于调试构建。

当我运行该应用程序时,它会看到旧的 APK 并发现它符合 Gradle 的预期,因为 Gradle 尚未刷新并注意到日期更改。

我需要强制 gradle 在每次运行时刷新。

buildTypes {
debug {
debuggable true
minifyEnabled false
proguardFiles 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def formattedDate = new Date().format('yyyyMMdd')
def newName = output.outputFile.name
newName = newName.replace("app-", "myappname-") //"MyAppName" -> I set my app variables in the root project
newName = newName.replace("-release", "-" + versionName + "-" + formattedDate + "-r")
newName = newName.replace("-debug", "-" + versionName + "-" + formattedDate + "-d")
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
}

最佳答案

命令行选项

即使其他一些选项可能有效,您是否尝试过

--recompile-scripts 

Forces scripts to be recompiled, bypassing caching.

command-line option ?另一种选择是 --rerun-tasks ,但这可能有点矫枉过正。

代码选项:upToDateWhen

看看Resetting the UP-TO-DATE property of gradle tasks? .设置 upToDateWhen {false} 可能会成功。请尝试以下操作:

    applicationVariants.all { variant ->
variant.outputs.upToDateWhen {false}
variant.setOnlyIf { true }
variant.outputs.each { output ->
def formattedDate = new Date().format('yyyyMMdd')
def newName = output.outputFile.name
newName = newName.replace("app-", "myappname-") //"MyAppName" -> I set my app variables in the root project
newName = newName.replace("-release", "-" + versionName + "-" + formattedDate + "-r")
newName = newName.replace("-debug", "-" + versionName + "-" + formattedDate + "-d")
output.outputFile = new File(output.outputFile.parent, newName)
}
}

关于带有运行昨天版本时间戳的 Android Gradle 构建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885786/

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