基于这个答案,我意识到我们可以使用 Gradle 变量(当然我不熟悉 Gradle,所以请原谅我的术语)在许多 Android 项目中保持一些一致性。
例如,我想更改android闭包配置:
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
对此:
android {
compileSdkVersion configurationVariables.sdk
buildToolsVersion configurationVariables.buildToolsVersion
defaultConfig {
minSdkVersion configurationVariables.minSdk
targetSdkVersion configurationVariables.targetSdk
versionCode 1
versionName "1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
错误:(5, 0) 启动失败:构建文件“path_to_android\build.gradle”:5:构建脚本中不得使用语句标签。如果您尝试配置名为“buildToolsVersion”的属性,请将“:”替换为“=”或“ ”,否则不会达到预期的效果。@第5行,第24列。buildToolsVersion:configurationVariables.buildToolsVersion
如何使用变量来集中跨项目和模块的构建配置?
更新:我的定义configurationVariables如下:
ext {
configurationVariables = [
sdk = 27,
buildToolsVersion = "27.0.3",
minSdk = 16,
targetSdk = 27
]
}
Run Code Online (Sandbox Code Playgroud)
我将其写入一个config.gradle文件中,然后将apply from其导入到根项目build.gradle中,以将其应用于所有子项目。
您的配置文件结构将值存储为变量。一般来说这个结构是用来存储变量的。你的配置文件应该是这样的
ext {
sdk = 27
buildToolsVersion = "27.0.3"
minSdk = 16
targetSdk = 27
}
Run Code Online (Sandbox Code Playgroud)
你使用这个变量作为
compileSdkVersion sdk
buildToolsVersion buildToolsVersion
我没有使用数组来存储此变量,但正如您在另一个答案链接中给出的那样,它们使用冒号(:) 存储数组变量,并且您直接存储值。我不确定,但如果你想使用数组,请尝试使用这样的冒号:
ext {
configurationVariables = [
sdk : 27,
buildToolsVersion : "27.0.0",
minSdk : 16,
targetSdk : 27
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1242 次 |
| 最近记录: |