上架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了。