gpt4 book ai didi

android - 如何为 build.gradle 的 android 部分使用变量?

转载 作者:太空狗 更新时间:2023-10-29 14:40:20 24 4
gpt4 key购买 nike

基于 this answer ,我意识到我们可以使用 Gradle 变量(当然我不熟悉 Gradle,所以请原谅我的术语)在许多 Android 项目中实现一些一致性。

例如,我想从这里更改android 闭包配置:

android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
}
}

对此:

android {
compileSdkVersion configurationVariables.sdk
buildToolsVersion configurationVariables.buildToolsVersion
defaultConfig {
minSdkVersion configurationVariables.minSdk
targetSdkVersion configurationVariables.targetSdk
versionCode 1
versionName "1.0"
}
}

但是,我得到这个错误:

Error:(5, 0) startup failed: build file 'path_to_android\build.gradle': 5: Statement labels may not be used in build scripts. In case you tried to configure a property named 'buildToolsVersion', replace ':' with '=' or ' ', otherwise it will not have the desired effect. @ line 5, column 24. buildToolsVersion: configurationVariables.buildToolsVersion

我如何使用变量来集中跨项目和模块的构建配置?

更新:我定义我的configurationVariables如下:

ext {

configurationVariables = [
sdk = 27,
buildToolsVersion = "27.0.3",
minSdk = 16,
targetSdk = 27
]
}

我将其写入 config.gradle 文件并使用 apply from 将其导入 build.gradle根项目将其应用于所有子项目。

最佳答案

您的配置文件结构将值存储为变量。通常这个结构是用来存储变量的。你的配置文件应该是这样的

ext {


sdk = 27
buildToolsVersion = "27.0.3"
minSdk = 16
targetSdk = 27

}

并且您将此变量用作

compileSdkVersion sdk
buildToolsVersion buildToolsVersion

我没有使用数组来存储此变量,但正如您在另一个答案链接中给出的那样,它们使用冒号 (:) 存储数组变量,而您直接存储值。我不确定,但如果你想使用数组,请尝试像这样使用冒号:

ext {
configurationVariables = [
sdk : 27,
buildToolsVersion : "27.0.0",
minSdk : 16,
targetSdk : 27
]
}

关于android - 如何为 build.gradle 的 android 部分使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49249543/

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