明明代码中所有涉及 intent-filter 过滤器的 Activity / Service / Receiver 都已经设置了exported 属性,但依旧提示使用 Intent 过滤器的 XX 需设置 exported 属性;其原因在于引入了各类三方SDK,在引入的各类三方库中可以存在对应的未设置 exported 属性的 Activity / Service / Receiver。
解决方案:
1、现将 targetSdkVersion 版本降到 30,执行 Clean Project 清理项目,然后 Rebuild Project 重新编译
2、编译完成后,在项目中找到 app => build => intermediates => merged_manifest => developDebug => AndroidManifest.xml。
3、这是编译后的合并清单,在AndroidManifest.xml中找到 涉及intent-filter过滤器且没有设置 android:exported 属性的 Activity/Service/Receiver,把它们复制到自己项目的AndroidManifest.xml文件中
4、如果两个清单文件中有android:name相同的标签,则直接添加android:exported属性。
5、全部修改完成后,把 targetSdkVersion 版本改回 31,在执行 Clean Project 清理项目,然后 Rebuild Project 重新编译,到此就是我的解决方案。