配置buildConfigField
在開(kāi)發(fā)中經(jīng)常分測(cè)試環(huán)境和正式環(huán)境,每次發(fā)布版本總是要修改服務(wù)器地址或者端口號(hào)。其實(shí)可以在build.gradle中為測(cè)試環(huán)境和正式環(huán)境配置不同的服務(wù)地址,在編譯的時(shí)候會(huì)自動(dòng)根據(jù)當(dāng)前的buildType選擇不同的服務(wù)地址。
android {
buildTypes {
debug {
buildConfigField 'String', 'domain', '"http://192.168.0.1:5555/MyProject/"'
}
release {
buildConfigField 'String', 'domain', '"http://192.168.0.1:8888/MyProject/"'
}
}
}
在自動(dòng)生成的類BuildConfig中會(huì)新增domain字段,且在不同的buildType環(huán)境下的值是不一樣的,如下:
測(cè)試環(huán)境的值
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String domain = "http://192.168.0.1:5555/MyProject/";
}
生產(chǎn)環(huán)境的值
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String domain = "http://192.168.0.1:8888/MyProject/";
}
使用BuildConfig
直接用BuildConfig調(diào)用,例如:
String url = BuildConfig.domain;
注意事項(xiàng)
由于我們這里介紹的buildConfigField是String類型,所以要注意以下例子,前三種寫(xiě)法都是可以的,但是后兩種是錯(cuò)誤的
buildTypes {
debug {
// 單引號(hào)寫(xiě)法
buildConfigField 'String', 'string1', '\"string1value\"'
// 雙引號(hào)寫(xiě)法
buildConfigField "String", "string2", "\"string2value\""
// 單雙引號(hào)的寫(xiě)法,最簡(jiǎn)潔不用轉(zhuǎn)義,推薦該寫(xiě)法
buildConfigField 'String', 'string3', '"string3value"'
// 以下兩種寫(xiě)法都沒(méi)轉(zhuǎn)義,會(huì)報(bào)錯(cuò)
buildConfigField 'String', 'string4', 'string4value'
buildConfigField "String", "string5", "string5value"
}
}
結(jié)果如下,可以看到最后兩個(gè)生成的值沒(méi)加雙引號(hào),不是字符串會(huì)報(bào)錯(cuò),在IDE中會(huì)標(biāo)紅顯示錯(cuò)誤。
public final class BuildConfig {
public static final String string1 = "string1value";
public static final String string2 = "string2value";
public static final String string3 = "string3value";
public static final String string4 = string4value; // IDE中string4value的顏色是紅色
public static final String string5 = string5value; // IDE中string5value的顏色是紅色
}