gpt4 book ai didi

android - 如何通过gradle任务同步Android项目?

转载 作者:行者123 更新时间:2023-11-30 00:23:31 25 4
gpt4 key购买 nike

我想在 Android Studio 中一键发布应用

我有 3 个任务:increment-version、build-app 和 publish-app:

increaseVersionCode assembleRelease crashlyticsUploadDistributionRelease

increaseVersionCode 任务(我自己的)只是在 build.gradle 中增加 versionCode,但在那之后任务 assembleRelease 以之前的值运行versionCode(不递增)。最后(在所有 3 个任务之后),我在 build.gradle 中增加了版本代码,并发布了应用程序,但使用的是旧版本代码。

我想,我应该在 increaseVersionCode 之后运行“Sync Project”。但我不知道如何用 gradle 做到这一点。

是否可以通过 gradle 任务运行 Android Studio 的“同步项目”?

increaseVersionCode 来源:

import java.util.regex.Pattern
task('increaseVersionCode') << {
def buildFile = file("build.gradle")
def pattern = Pattern.compile("versionCode\\s+(\\d+)")
def manifestText = buildFile.getText()
def matcher = pattern.matcher(manifestText)
matcher.find()
def versionCode = Integer.parseInt(matcher.group(1))
def manifestContent = matcher.replaceAll("versionCode " + ++versionCode)
buildFile.write(manifestContent)
}

UPD,回答

我们需要将命令拆分为两个 bash 命令:

./gradlew increaseVersionCode && ./gradlew assembleRelease crashlyticsUploadDistributionRelease

使用 Android-Studio 插件 BashSupport 我们可以从 studio 运行 bash 脚本。因此,我们需要将此命令放入文件中,然后使用 Android-Studio 运行它。感谢@k3b。

最佳答案

注意:gradle-scripts 是编译的而不是解释的。

gradle 编译所有构建文件,然后执行构建。它没有注意到它自己的构建文件之一在构建编译后发生了变化,因此该应用程序是使用旧版本信息构建的。

我不知道是否可以告诉 gradle 重建构建脚本或使用新编译的构建脚本执行子 gradle

也许你可以创建一个你可以从 android studio 执行的批处理文件,它不依赖于 android-stuidio-build 所以你没有“告诉 android studio”的问题:

  • gradlew increaseVersionCode
  • rem 第二次调用 gradlew 应该重新编译构建脚本
  • gradlew clean assembleRelease crashlyticsUploadDistributionRelease

关于android - 如何通过gradle任务同步Android项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45848521/

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