问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Android 12及以上版本安装失败问题解决方案

创作时间:
作者:
@小白创作中心

Android 12及以上版本安装失败问题解决方案

引用
CSDN
1.
https://m.blog.csdn.net/qq_40864422/article/details/143892124

在将Android应用的目标SDK版本设置为31(Android 12)及以上时,如果应用使用了intent-filter但未正确声明android:exported属性,可能会导致应用无法安装。本文将详细介绍这个问题的背景和解决方案。

问题背景

从Android 12开始,如果应用包含使用intent-filter过滤器的activity、service或receiver,必须显式声明android:exported属性。具体来说:

  • 如果应用组件包含LAUNCHER类别,应将android:exported设置为true
  • 在大多数其他情况下,应将android:exported设置为false

常规解决方案

通常,开发者可以通过以下步骤解决这个问题:

  1. 打开AndroidManifest.xml文件
  2. 搜索所有使用intent-filter的组件
  3. 为这些组件添加android:exported属性

然而,在某些情况下,即使按照上述步骤操作,仍然可能会遇到安装失败的问题。这通常是由于项目中引用的第三方库导致的,因为第三方库中的某些组件可能使用了intent-filter但没有声明android:exported属性。

详细排查步骤

要解决这个问题,可以按照以下步骤进行排查:

  1. 重新编译项目
  • 执行Rebuild Project命令
  1. 定位合并后的AndroidManifest.xml文件
  • 编译完成后,在项目中找到以下路径:
    app => build => intermediates => merged_manifest => developDebug => AndroidManifest.xml
    

  1. 检查并修改配置
  • 打开定位到的AndroidManifest.xml文件
  • 查找所有使用intent-filter但未声明android:exported属性的Activity、Service或Receiver
  • 将这些组件复制到项目的AndroidManifest.xml文件中,并添加android:exported属性
  1. 清理并重新构建项目
  • 执行Clean Project命令清理项目
  • 再次执行Rebuild Project命令重新构建项目

按照上述步骤操作后,应该可以解决Android 12及以上版本中intent-filter相关的问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号