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

Flutter无法构建AppBundle 报manifest存在意外<queries>元素错误

问题现象

更新应用后出现崩溃,既无法回退原有配置,也无法完成应用升级,构建时抛出如下错误:

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /Users/...  AAPT: error: unexpected element <queries> found in <manifest>.

执行flutter clean、清除IDE缓存重启等操作均无效,甚至基础Flutter示例项目也无法正常运行,无法完成AppBundle构建。

当前环境配置
  • Gradle Wrapper配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip
  • 项目根目录build.gradle依赖配置:
dependencies {
    classpath 'com.android.tools.build:gradle:3.5.0'
    classpath 'com.google.gms:google-services:4.3.3'
}
  • Flutter版本:1.22.6(空安全特性推出前的旧版本)
问题根因

<queries>是Android 11(API 30)新增的清单文件元素,用于声明应用需要访问的其他应用包名。当前使用的Android Gradle Plugin(AGP)3.5.0版本未对该元素做适配,资源链接阶段无法识别该标签就会抛出上述错误。
哪怕开发者没有手动在清单文件中添加这个标签,引入的第三方依赖、Flutter框架嵌入层在适配Android 11后,也会自动将该标签合并到最终生成的清单文件中,因此新建的基础示例项目也会触发同类报错。

解决方案

以下两个方案可根据实际需求选择,优先推荐改动最小的方案一:

方案一:小版本升级AGP和对应Gradle版本(推荐,无需升级Flutter版本)

  1. 修改gradle-wrapper.properties中的Gradle分发地址,将原有distributionUrl替换为:
    distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
    
  2. 修改项目根目录build.gradle中的AGP依赖版本,将3.5.0替换为3.5.4:
    classpath 'com.android.tools.build:gradle:3.5.4'
    
    AGP 3.5.x分支从3.5.4版本开始正式加入对<queries>标签的兼容支持,升级后不会影响Flutter 1.22.6版本的正常编译,整体改动量极小。
  3. 重新执行构建即可,无需修改业务层代码。

方案二:锁死全量依赖版本(不推荐)

如果完全不想调整Gradle和AGP版本,可以将所有Android端依赖、Flutter SDK依赖全部锁到适配Android 11之前的版本,避免依赖合并时带入<queries>标签。但这种方式后续无法升级任何依赖,维护成本极高,非极端场景不建议使用。

注意事项
  • 不要直接将AGP升级到4.0及以上版本,高版本AGP和Flutter 1.22.6存在已知兼容问题,会触发其他编译错误
  • 修改配置后如果仍触发相同报错,可以删除项目根目录下的.gradle缓存文件夹后再重新同步构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 12:24:59