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

Android 12+应用因android:exported声明问题致构建失败

解决Android 12+构建时Manifest合并报错问题

问题原因

Android 12(API 31)及以上版本强制要求:所有包含<intent-filter>的组件(Activity、Service、BroadcastReceiver)必须显式声明android:exported属性,值需设为true或false。若应用自身或依赖的第三方库中存在未声明该属性的这类组件,就会触发Manifest合并失败,导致构建报错。

解决方案

1. 确认自有组件的android:exported配置

检查你编写的Manifest组件,所有带<intent-filter>的项都已正确设置android:exported:
你的MainActivity、RebootBroadcastReceiver、StartupActivity、BootBroadcastReceiver均已配置该属性,这部分无需调整。

2. 升级适配Android 12的Flutter插件版本

报错大概率来自你使用的第三方Flutter插件(如android_alarm_manager_plus、background_locator)旧版本,这些版本未适配Android 12的exported要求:

  • 打开pubspec.yaml,将android_alarm_manager_plus升级至最新稳定版(至少1.1.0以上)
  • 将background_locator升级至支持Android 12的最新版本(如2.0.0及以上)
  • 执行flutter pub get更新依赖

3. 无法升级插件时,手动覆盖第三方组件属性

若暂时无法升级插件,可在你的AndroidManifest.xml中,针对第三方库中缺失exported的组件,显式声明并设置该属性,同时用tools:replace强制覆盖:
例如,针对某缺失配置的第三方服务,在<application>标签内添加:

<service
    android:name="第三方组件的完整类名"
    android:exported="false" <!-- 根据组件功能需求设为true或false -->
    tools:replace="android:exported" />

你可以通过构建日志的具体报错信息,定位到缺失exported的第三方组件类名。

4. 验证构建

完成上述操作后,重新执行flutter build apk --debug或点击IDE构建按钮,确认报错是否消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:10:31