You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加android:exported后仍无法解决Android 12+安装报错问题

问题排查与解决

核心问题分析

你遇到的报错根源是:Android 12及以上版本要求所有带有intent-filter的组件(Activity、Service、BroadcastReceiver)必须显式声明android:exported属性。你仅给MainActivity添加了该属性,但仍有遗漏的组件未处理:

  1. com.yalantis.ucrop.UCropActivity:这个第三方裁剪库的Activity,其内部Manifest中带有隐式跳转的intent-filter,但未声明android:exported。当你的APP目标SDK版本≥31时,合并后的Manifest会包含这个未合规的组件,触发报错。
  2. .P2PActivity:若该Activity存在隐式调用逻辑(比如通过自定义intent-filter跳转),或需要被内部/外部隐式启动,同样必须声明android:exported。即使没有显式写intent-filter,为了兼容规范也建议补上。

修复步骤

修改你的AndroidManifest.xml,给这两个Activity补充android:exported属性:

<!-- UCropActivity仅内部调用,设为false即可 -->
<activity
    android:name="com.yalantis.ucrop.UCropActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    android:exported="false" />

<!-- P2PActivity根据实际场景设置:需外部启动设为true,仅内部使用设为false -->
<activity android:name=".P2PActivity"
    android:theme="@style/Theme.P2PSampleApp"
    android:exported="false" />

额外检查点

  • 通过Android Studio的Merged Manifest功能(Manifest编辑器底部切换到对应标签)查看最终合并后的Manifest,逐一排查所有带有intent-filter的组件,确认都已设置android:exported,包括第三方库注入的组件(如Firebase相关服务)。
  • 确保APP的targetSdkVersion已设置为31或更高,这是触发该合规检查的前提,也是适配Android 12+的基础要求。

内容的提问来源于stack exchange,提问作者krishnapriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:58:13