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

Android 12+ Manifest合并报错:已配置android:exported仍出错?

解决Android 12+ Manifest合并错误:未显式指定android:exported

问题根源

你自己的Manifest文件里,带<intent-filter>的Splash和WebViewActivity已经正确添加了android:exported="true",但报错的原因是第三方依赖库中的组件(比如AdMob或其他SDK)在其Manifest中声明了带intent filter的组件,但未指定android:exported属性,这些组件在Manifest合并后会触发Android 12+的强制要求。

解决步骤

  1. 查看合并后的完整Manifest
    在Android Studio中,通过以下路径查看最终合并的Manifest:
    Tools > App Links Assistant > Open Merged Manifest
    或者去项目的build/outputs/logs目录下找到manifest-merger-<variant>-report.txt文件,搜索android:exported,定位所有未显式设置该属性且带有intent filter的组件。

  2. 覆盖第三方组件的属性
    在你自己的AndroidManifest.xml中,重新声明这些第三方组件,显式添加android:exported属性(值设为true或false,根据组件是否需要被外部应用调用决定),并使用tools属性确保合并时生效:

    • 若仅补充缺失属性,用tools:node="merge"
    • 若需替换原有属性,用tools:replace="android:exported"

    示例:假设合并后发现AdMob的某个广播接收器未设置android:exported,可添加如下代码到你的Manifest中:

    <receiver
        android:name="com.google.android.gms.ads.AdvertisingIdClient$AdvertisingIdReceiver"
        android:exported="false"
        tools:replace="android:exported" />
    
  3. 更新依赖库版本
    尽量将所有第三方依赖库更新到支持Android 12及以上的版本,大部分主流SDK已经修复了android:exported的缺失问题,更新后可能无需手动覆盖属性。

额外说明

你Manifest中的NoInternetConnectionActivity和AppIntroActivity没有设置<intent-filter>,因此不需要添加android:exported属性(默认值为false,符合Android 12+的要求),无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:50:18