31、Android获取meta-data和build.gradle的值

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

猜你喜欢

转载自blog.csdn.net/fdoubleman/article/details/78855967
今日推荐