我的build.gradle文件包含以下行:
targetSdkVersion 26
我希望它是这样的:
targetSdkVersion Build.VERSION_CODES.o
这可能吗? 它看起来更干净/更安全,但这种语法不起作用。
目标 SDK 版本出现在多个项目中 [...]最好在一个地方为所有使用实例定义它
因此,我们讨论的是定义项目范围的可访问构建时间值。
将其放在您的根项目中build.gradle
:
ext {
compileSdkVersion = 26
buildToolsVersion = "26.0.0"
minSdkVersion = 17
targetSdkVersion = 26
supportLibVersion = "26.0.0"
playServicesVersion = "10.2.6"
}
现在,您可以在模块中引用这些值build.gradle
如下所示:
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
// ...
}
// ...
}
dependencies {
compile "com.android.support:design:$supportLibVersion"
compile "com.google.firebase:firebase-messaging:$playServicesVersion"
// ...
}
// ...
我认为您甚至可以省略rootProject.ext.
前缀,只要结果名称不与 DSL 成员名称冲突。
在Groovy中,只要使用双引号,就可以在字符串中使用变量。
这可能吗?
不,对不起。Build
是存在于Android框架中的Java类。它不适用于 Gradle。