如何解决编译错误:“面向 Android 12 及更高版本的应用需要为 android:exported 指定显式值”问题

如果您的应用针对 Android12,则文档说:

如果您的应用面向 Android 12 并包含使用Intent 过滤器的活动、服务或广播接收器,
则您必须显式声明这些应用组件的属性android:exported

因此,我为所有在 AndroidManifest.xml 中使用意图过滤器的组件显式声明android:exported了属性,但仍然因编译错误而失败:

清单合并失败并出现多个错误,请参阅日志错误:当相应组件定义了意图过滤器时,
需要针对 Android 12 及更高版本的应用程序为 `android:exported` 指定显式值

发生了什么 ??

为什么所有的activity、server和Receiver都配置exported了,还报这个错误?

您需要检查“合并”清单

该文件说:

您的 APK 文件只能包含一个AndroidManifest.xml文件,但您的 Android Studio 项目可能包含多个文件——由主要源集、构建变体和导入的库提供。因此,在构建您的应用程序时,Gradle 构建会将所有清单文件合并为一个打包到您的 APK 中的清单文件。

提示:使用合并清单视图预览合并清单的结果并查找冲突错误。

因此,您还需要检查导入的库,并且要预览合并的清单,您可以使用编辑器底部的Merged Manifest 选项卡。

此时您需要将 targetSdkVersion暂时降低到 30 才能进行编译。

在 我的项目中,我发现下面显示的这些来自外部库的组件没有为 `android:exported` 指定显式值,即使这些组件声明了意图过滤器。

来自外部库的这些组件声明了意图过滤器,但未指定导出的属性

当我在 Merged Manifest 视图中单击这些组件时,我发现这些组件来自androidx.test:core:1.3.0。

但是,我的项目确实明确地实现了这个库,所以我必须找到其他依赖于“androidx.test:core:1.3.0”的库

替换库的提示

所以我不得不查找和替换依赖于 androidx.test:core:1.3.0 的库。

总结

如果您指定了exported 属性也编译失败,原因可能是您的外部库。要找出这一点,您可以使用合并清单视图进行检查。要找到合适版本的库替换或者升级。

Android 12适配安全组件导出设置`android:exported` 指定显式值”相关推荐

  1. 关于Android 12 适配,看这篇就够了

    一:功能和 API 概览 Android 12 面向开发者引入了一些出色的新功能和 API.以下几部分内容可帮助您了解适用于您的应用的功能并开始使用相关 API. 有关新增.修改和移除的 API 的详 ...

  2. android 开放平台开发,OPPO开放平台上线Android 12适配文档

    OPPO 近日悄然在开放平台添加了 Android 12 适配文档,该文档可帮助 App 开发者更好地兼容 Android 12. 虽然文档内还没有任何内容,但这标志着 OPPO 已经开始了 Andr ...

  3. android制作开放平台,OPPO 开放平台上线 Android 12 适配文档

    IT之家 5 月 17 日消息OPPO 近日悄然在开放平台添加了 Android 12 适配文档,该文档可帮助 App 开发者更好地兼容 Android 12. 虽然文档内还没有任何内容,但这标志着 ...

  4. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

    {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句  B: ...

  5. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值。

    在使用SQLServer数据库的时候,在进行数据报错过程中,出现如下异常: 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值. 当前表没有设置关联关 ...

  6. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能常常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...

  7. android开发常用的组件,7款Android开发者常用的Android UI组件

    关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java Android开发是目前最热门的移动开发技术之一,随着开发者的不断努力和Android社区的进步,Android ...

  8. android app防止锁屏_设置Android系统永不锁屏永不休眠的方法

    在进行Android系统开发的时候,有些特定的情况需要设置系统永不锁屏,永不休眠.本篇文章给大家介绍Android 永不锁屏,开机不锁屏,删除设置中休眠时间选项,需要的朋友一起学习吧. Android ...

  9. android:ellipsize = marquee 跑马灯,TextView设置android:ellipsize=marquee不滚动

    今天发现android开发中有一个android:ellipsize=marquee,这个感觉像html中的marquee功能,可以实现滚动效果,于是测试了一下,结果不行呀,后来百度了一下解决办法,下 ...

最新文章

  1. 【kissfft】使用kiss_fft做FFT与iFFT
  2. einops 张量操作
  3. LeetCode Compare Version Numbers(版本比较)
  4. SpringBoot+Echarts实现请求后台数据显示饼状图
  5. 接口 Closeable
  6. mysql大小写敏感_MySQL数据库大小写敏感的问题
  7. SAP License:我们到底需要什么能力?
  8. 高校毕业设计管理系统【附源码】
  9. Android设计UI界面
  10. 如何查看win10系统的激活情况
  11. HTML实现“流星雨”
  12. 人脸表情数据集-fer2013
  13. Android中MotionEvent的来源和ViewRootImpl
  14. fedora如何下载软件
  15. Cocos2d-x开发实例:使用Lambda 表达式
  16. Servlet 和Session的关系
  17. mac VM fusion7 安装 win7教程
  18. (五)【虚拟仿真】基于光学平台的迈克尔孙干涉仪实验
  19. Threejs实现标签,自定义样式显示标签
  20. 多元函数第二:线性空间(3)线性独立与交换定理

热门文章

  1. J1939协议与CAN2.0对应关系图表
  2. 浅谈Calcite的Calc优化
  3. 匀速贝塞尔曲线运动的实现(转)
  4. 电工实习AT89C51的讲解
  5. windows便签快捷键_如何将Win7自带便签添加到桌面快捷方式?
  6. 支持向量机SVM(Support Vector Machine)是一个有监督的学习模型
  7. 《Nuitka打包实战指南》第一节 下载和环境配置
  8. pg主从复制(二)——备库激活过程分析
  9. avue框架表格实现自定义搜索栏,即清空搜索事件
  10. java练习题(包含读程序选择题)(附答案)