是否可以在 Gradle 中声明一个可在 Java 中使用的变量?基本上我想在 build.gradle 中声明一些变量,然后在构建时(显然)得到它。就像 C/C++ 中的预处理器宏...
声明的一个例子是这样的......:
android {
debug {
A_VAR_RETRIEVABLE_IN_JAVA = 42
}
release {
A_VAR_RETRIEVABLE_IN_JAVA = 42+52
}
}
有没有办法做这样的事情?
这里有两种从 Gradle 传递值以在 Java 中使用的方法;
生成 Java 常量
android {
buildTypes {
debug {
buildConfigField "int", "FOO", "42"
buildConfigField "String", "FOO_STRING", "\"foo\""
buildConfigField "boolean", "LOG", "true"
}
release {
buildConfigField "int", "FOO", "52"
buildConfigField "String", "FOO_STRING", "\"bar\""
buildConfigField "boolean", "LOG", "false"
}
}
}
您可以使用 BuildConfig.FOO
访问它们
生成 Android 资源
android {
buildTypes {
debug{
resValue "string", "app_name", "My App Name Debug"
}
release {
resValue "string", "app_name", "My App Name"
}
}
}
您可以使用 @string/app_name
或 R.string.app_name
以通常的方式访问它们
我是一名优秀的程序员,十分优秀!