需求:
项目中有一个需求希望是
从gradle 中取值
,
从mainfase.xml 中取值
。
一、从mainfase.xml中取值:
1、首先在application 节点下添加
<meta-data android:name="WebviewUrl" android:value="
dogson
" />
就像这样:
<application
android:name=".BaseApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/myapp_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:label,android:name">
....
<meta-data android:name="WebviewUrl" android:value="dogson" />
</application>
2、其次
获取meta-data中的值,直接看方法:
public String getWebEnv() {
ApplicationInfo appInfo = null;
try {
appInfo = mContext.getApplicationContext()
.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
if (appInfo != null && appInfo.metaData != null) {
String serverName = appInfo.metaData.getString("WebviewUrl");
return serverName;
} else {
Logger.getLogger().e("需要在AndroidManifest.xml中配置WebviewUrl meta数据");
return "";
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}
二、从gralde 中取值:
例如取gradle 中的这个值:
1、首先在application 节点下添加
<meta-data
android
:name=
"ServerName"
android
:value=
"${ServerName}"
/>
<meta-data
android
:name=
"WebviewUrl"
android
:value=
"${WebviewUrl}"
/>
2、其次在 buildTypes 中 修改 meta-data 中的值
buildTypes {
debug {
manifestPlaceholders = [ServerName: envCode,WebviewUrl:envCode]
}
release {
manifestPlaceholders = [ServerName: envCode,WebviewUrl:envCode]
}
}
3、代码中 取
application meta-data (代码钱么提过)就可以了。