最详细步骤解决:Apps targeting Android12 and higher are required to specify...

server/2024/9/21 9:55:55/

问题原因:

        当targetSdkVersion>=31时,需要在AndroidManifest.xml中配置android:exported的值,该值为boolean类型。

android:exported解释:

        activity 是否可由其他应用的组件启动:

  • 如果设为 "true",那么 activity 可由任何应用访问,并且可通过其确切类名称启动。
  • 如果设为 "false",则 activity 只能由同一应用的组件、使用同一用户 ID 的不同应用或具有特权的系统组件启动。没有 intent 过滤器时,这是默认值。

如果应用中的 activity 包含 intent 过滤器,请将此元素设置为 "true",以允许其他应用启动该 activity。例如,假设 activity 是应用的主要 activity,并且包含 categoryandroid.intent.category.LAUNCHER

如果此元素设为 "false",并且应用尝试启动该 activity,系统会抛出 ActivityNotFoundException

此属性并非是限制 activity 向其他应用公开的唯一方式。权限还可用于限制可调用 activity 的外部实体。请参考 permission 属性。

解决方案:

        总结来说就是,AndroidManifest.xml中四大组件中包含了 <intent-filter>的,全部需要加上android:exported,true或者false就根据自己的业务来定。

异常情况:

        这时候就有同学该问了,为什么我明明都加上了,但是还是报这个错呢,我淋过的雨,那必须给你们撑一把伞。

        几种情况
                1、检查自己依赖的 Module中的AndroidManifest.xml是否都加了android:exported
                2、如果第一种情况都加上了并且还是报错
                那么问题就出现在我们依赖的那些库没有加android:exported

        那么我们怎么知道是哪个库没有加,如何给他加上呢?跟着我的步骤一步步来

        一、我们将targetSdkVersion恢复到31以下,然后重新编译一下项目

        二、找到路径为app\build\intermediates\merged_manifests\debug\AndroidManifest.xml

        

        如图所示,将该xml文件打开,直接Ctrl+F搜索<intent-filter>


        三、找一找是哪个没有android:exported然后复制出来,粘贴到你自己项目的AndroidManifest.xml中,添加上android:exported后,重新将targetSdkVersion恢复到31以上编译运行。至此完美落幕,下课!


http://www.ppmy.cn/server/12144.html

相关文章

人脸服务的算法内容

人脸算法可以返回在图像中找到的任何人脸的矩形坐标&#xff0c;以及与这些人脸相关的一系列属性&#xff0c;例如&#xff1a; 配饰&#xff1a;指示给定的人脸是否有配饰。 此属性会返回可能的配饰&#xff0c;包括头饰、眼镜和口罩&#xff0c;每个配饰的置信度分数介于 0 …

openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核

文章目录 openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核269.1 安装openGauss数据库269.2 停止数据库269.3 使用gs_guc工具修改数据库端口、IP等269.4 使用gs_guc工具设置如下参数269.5 执行如下命令以绑核方式启动服务端数据库269.6…

使用Pycharm运行spark实例时没有pyspark包(ModuleNotFoundError: No module named ‘py4j‘)

一、问题描述 在安装并配置pyspark&#xff0c;下载并打开Pycharm&#xff08;专业版&#xff09;后进行spark实例操作&#xff08;笔者以统计文件中的行数为例&#xff09;时&#xff0c;运行程序后提示ModuleNotFoundError: No module named py4j&#xff1a; 二、解决办法 …

Docker搭建启动gitbook

基本就是参考下面的文档即可。 Docker 安装 Gitbook 文档 启动的时候&#xff0c;会报错&#xff1a; Error: ENOENT: no such file or directory, stat ‘C:***demo_book\_book\gitbook\gitbook-plugin-fontsettings\fontsettings.js’ 解决方案&#xff1a; 用户目录下找…

【Flask】Flask中HTTP请求与接收

一、接收http请求与返回响应 在Flask中&#xff0c;可以通过app.route装饰器来定义路由函数。 app.route(/BringGoods,methods [POST, GET]) GET请求&#xff1a;使用request.args.get(key)或者request.values.get(key)来获取URL中的参数。 POST请求&#xff1a; 使用req…

单片机学习过程

继电器光耦隔离电压转换步进电机直流电机 arduino是最好用的一种&#xff0c;他提供了完整的设备库文件&#xff0c;任何外部设备只要查找相应的库&#xff0c;就可以很方便的使用 &#xff0c; 但是如果不去学习51 或stm32 或 嵌入式玩玩还可以&#xff0c;如果碰到没有实现的…

Gopher的Rust第一课:Rust的那些事儿

要说这两年后端编程语言谁最火&#xff0c;Rust[1]说自己第二&#xff0c;没人敢说第一。Rust连续8年霸榜stackoverflow最受推崇的编程语言[2]&#xff0c;甚至被推特之父Jack Dorsey称为“完美的编程语言”&#xff1a; 注&#xff1a;最火&#xff1a;仅代表人气最旺&#xf…

【软件安装】双系统Ubuntu22.04引导启动菜单的默认项

一个愿意伫立在巨人肩膀上的农民...... 好学的人总是喜欢在电脑上安装双系统&#xff0c;可是安装好系统之后&#xff0c;就会出现默认启动优先级的苦恼&#xff0c;如果在Bios中设置Windows引导启动为优先启动&#xff0c;那么每次想要进如Ubuntu系统就都需要重新设置Bios。如…