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

如何修复AndroidManifest.xml合并失败以确保Flutter构建AppBundle成功?

Flutter 目标SDK31构建AppBundle时Manifest合并错误解决指引

问题场景

使用命令 flutter build appbundle --release 构建AppBundle,当目标SDK升级到31时出现以下错误:

Manifest merger failed : android:exported needs to be explicitly specified for . Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined.

SDK版本为30时构建正常,尝试移除包、手动添加android:export="true"等方案未解决。


解决方向

1. 精准定位未配置的Receiver组件

  • 进入项目的android目录,执行Gradle命令获取详细合并日志:
    ./gradlew :app:processReleaseManifest --stacktrace
    
    日志会明确指出是哪个依赖库或自身代码中的Receiver缺少android:exported属性。
  • 查看合并后的最终Manifest文件,路径为:
    app/build/intermediates/merged_manifests/release/AndroidManifest.xml
    搜索带有<intent-filter>的<receiver>标签,找到未指定android:exported的组件。

2. 修复第三方依赖库的Manifest问题

如果问题来自第三方依赖:

  • 强制合并属性:在app模块的AndroidManifest.xml中,针对目标Receiver添加显式配置,同时使用tools:node="merge"确保合并规则生效。示例:
    <!-- 先在manifest根标签添加tools命名空间 -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.your.package">
    
        <receiver
            android:name="com.dependency.library.SomeReceiver"
            android:exported="true" <!-- 根据组件功能选择true/false -->
            tools:node="merge">
            <intent-filter>
                <!-- 保留原有的intent-filter内容 -->
            </intent-filter>
        </receiver>
    </manifest>
    
  • 升级依赖版本:检查pubspec.yaml中的依赖,将相关库升级到支持Android 12的最新稳定版,多数主流库已适配android:exported要求。

3. 更新Flutter SDK版本

确保使用的Flutter SDK为2.8及以上的稳定版,旧版本对Android 12的Manifest合并逻辑支持不足。执行命令更新:

flutter upgrade

4. 检查项目自身的Receiver配置

确认项目中自定义的所有带有<intent-filter>的<receiver>,都已显式指定android:exported属性(值为true或false,根据组件是否需要被外部应用调用决定)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:32:18