google play上架报 --没有“android:exported”属性设置。此文件无法在 Android 12 或更高版本上安装

在将应用上架Google Play时遇到内部测试阶段,由于部分组件缺少'android:exported'属性设置导致在Android 12及以上版本无法安装。解决方法包括检查并添加所有四大组件(活动、服务、广播接收器、活动别名)的'android:exported'属性,特别是带有intent-filter的组件。对于外部库中出现的问题,可以通过查看构建输出日志找到具体错误组件,并在相应库的manifest文件中添加正确的'android:exported'属性。

上架google play内部测试时,要求打.aab包。然后上传以后报错

您上传的 APK 或 Android App Bundle 内含活动、活动别名、服务或广播接收器,这些项目有 intent 过滤器,但没有“android:exported”属性设置。此文件无法在 Android 12 或更高版本上安装。详情请参阅:developer.android.com/about/versions/12/behavior-changes-12#exported

1.给所有注册文件(包括导入的库)里带有

intent-filter

的四大组件下加入(必须是true)

android:exported="true"

不带有intent-filter的加入android:exported=""(true/false 可根据需求加入)

举例如下:

   <receiver android:permission="com.robkoo.jamkoo.permission.PROCESS_PUSH_MSG"
            android:name="com.huawei.hms.support.api.push.PushMsgReceiver"
            android:exported="true"
            android:directBootAware="true">

            <intent-filter>

                <action android:name="com.huawei.intent.action.PUSH_DELAY_NOTIFY"/>

                <action android:name="com.huawei.intent.action.PUSH"/>

            </intent-filter>

        </receiver>

这时候如果代码清晰的,没什么aar,jar包的就成功了。如果还没成功就看第二步

2.观看打包时的打印信息build - build output右侧信息

搜索:Adapt Android 12. modify manifestPath

然后他会展示有哪些jar包里边的android:exported=""是错误的

 

然后你复制组件信息到你引入库的注册文件下粘贴,把android:exported="true"加上或更改再运行即可。

举例如下:

去复制:

 

去粘贴:

 然后就成功了。接下来就可以看其他的bug了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值