需求:
项目中有一个需求希望是从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
(代码钱么提过)就可以了。