一般情况下,android开发在开发过程中会连接测试环境的url;发布的时候会连接正式环境的url;不只是url,各种第三方的appid,appkey等都要区分测试和正式环境。为了方便和避免疏忽造成的问题,我们可以在gradle中动态设置manifestPlaceholders和buildConfigField。
代码中引用根据debug和release引用不用的host配置
首先在根目录下的gralde.properties文件中添加变量,如下:
DEBUG_BASE_URL=http://192.168.0.202:19527/
BASE_URL=http://com.xxx.xxx/
在application目录下的build.gradle文件中的buildTypes下配置release和debug
minifyEnabled true
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.myConfig
buildConfigField ("String","BASE_URL","\"${BASE_URL}\"")
manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
}
debug {
signingConfig signingConfigs.myConfig
//解决包名不能超过6W
multiDexEnabled true
buildConfigField ("String","BASE_URL","\"${DEBUG_BASE_URL}\"")
manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
}
在代码中引用
String HOST = BuildConfig.BASE_URL;
manifest中配置第三方的appid或者appkey
上面的代码中有一行 manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
在manifest.xml文件中引用上述配置的变量
<meta-data android:name="com.appsee.ApiKey" android:value="${app_see_key}" />
网友评论