首先在最外层添加build_config.gradle配置文件。
文件内容可以如下:
ext {
//32位
configField = [
"updateUrl" : "\"downloadUrl32\"",
"abiFilters" : "armeabi-v7a",
"apkReleaseName" : "app.apk",
"apkDebugName" : "app_debug.apk"
]
}
在最外层build.gradle中添加 apply from: 'build_config.gradle':
apply from: 'build_config.gradle'
buildscript {
repositories {
google()
jcenter()
}
......忽略以下内容......
在应用的module中build.gradle使用以上添加的配置属性:
buildTypes {
debug {
buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
signingConfig signingConfigs.config
}
release {
buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
在程序中使用添加的"updateUrl"属性:
public class Test {
String urlString= BuildConfig.updateUrl;
}
注意的是:
代码中,通过buildConfigField使用String时,请注意"引号"的使用:
例如:
//build_config.gradle
ext {
//32位
configField = [
"updateUrl" : "downloadUrl32"
]
}
在build.gradle中,
buildTypes {
debug {
buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
}
release {
buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
}
}
检查,生成文件BuildConfig.java
public final class BuildConfig {
// Field from build type: debug
public static final String updateUrl = downloadUrl32;
}
直接可以看出 downloadUrl32 没有带引号,不符合string赋值原则。执行程序会出现错误。