從AndroidManifest.xml檔案中獲取 android:value 值的Integer與String轉換異常
阿新 • • 發佈:2019-01-10
最近接入Android的渠道商SDK時,在AndroidManifest.xml中添加了一些渠道引數,發現當填入的值恰好為一個int值,使用getString()方法取值就會報一個型別轉換異常。
配置如下: <meta-data android:name="zdqx_version" android:value="1101" /> 呼叫方法: appInfo.metaData.getString(keyMeta) 異常: Bundle : Key zdqx_version expected String but value was a java.lang.Integer. The default value <null> was returned. 解決辦法: //獲取metadata public static String getSystemMeta(String keyMeta) { String valueMeta = ""; try { ApplicationInfo appInfo = AppActivity.mAct.getPackageManager() .getApplicationInfo(AppActivity.mAct.getPackageName(), PackageManager.GET_META_DATA); Object object = appInfo.metaData.get(keyMeta); if (null != object) { valueMeta = String.valueOf(object); } } catch (NameNotFoundException e) { e.printStackTrace(); } Log.d(AppConst.TAG, "getSystemMeta info: " + keyMeta + " " + valueMeta); return valueMeta; }