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

面向Android12的应用报需显式指定android:exported错误如何解决

问题根源

你自己主Manifest中声明的MainActivity已经正确配置了android:exported属性,之所以还报错,是因为你项目依赖的第三方库中存在带但未显式声明android:exported的组件(Activity/Service/BroadcastReceiver/ContentProvider),Manifest合并时就会触发Android12+的规则校验报错,和你自己写的主Manifest内容无关。

解决步骤

  • 第一步:定位问题组件
    打开Android Studio项目中的AndroidManifest.xml文件,点击编辑器底部的「Merged Manifest」标签,即可查看所有依赖合并后的完整Manifest文件,红色高亮标记的就是未正确配置android:exported的问题组件,记录该组件的完整类名和所属包名。
  • 第二步:在主Manifest中覆盖声明
    在你自己的主AndroidManifest.xml的<application>标签内,重新声明找到的问题组件,显式指定android:exported属性,同时添加tools:node="replace"覆盖依赖库中的原有声明即可,示例如下:
<!-- 示例:假设找到的问题组件是第三方库的com.xxx.otherlib.OtherActivity -->
<activity
    android:name="com.xxx.otherlib.OtherActivity"
    android:exported="false" <!-- 不需要被外部应用调用就填false,需要就填true -->
    tools:node="replace" />
  • 其他可选临时方案:如果暂时不想适配,可将模块级build.gradle中的targetSdkVersion降到30及以下,即可绕过该校验规则,不过不建议长期使用该方案。
  • 补充检查:如果后续你自己添加了带的Service、BroadcastReceiver等其他组件,也需要为其显式声明android:exported属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:07