从AndroidManifest.xml文件中获取 android:value 值的Integer与String转换异常

本文介绍在Android开发过程中,接入渠道商SDK时遇到的一个问题:在AndroidManifest.xml文件中配置的int型数值,使用getString()方法读取时引发类型转换异常。文章详细解释了异常产生的原因,并提供了一个解决方案,通过将读取到的对象强制转换为字符串来避免异常的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接入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;  
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值