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

Flutter运行报错:Gradle7.2.1下manifest出现意外<queries>元素

报错根因

两个报错均为构建工具链版本不匹配导致:

  1. unexpected element <queries> found in <manifest><application> 报错:要么是Android Gradle Plugin(AGP)版本过低,不支持Android 11新增的清单查询标签;要么是<queries>标签在AndroidManifest.xml中放置的层级错误。
  2. Unsupported class file major version 62 报错:class版本号62对应Java 18,AGP 7.3及以下版本最高仅支持到Java 17,M1芯片Mac上Android Studio默认绑定的JDK版本较高,降级Gradle后无法识别高版本JDK编译的类文件就会触发该错误。
修复步骤
  • 对齐Gradle与AGP的兼容版本
    打开gradle/wrapper/gradle-wrapper.properties文件,将distributionUrl字段修改为指向Gradle 7.4.2版本的二进制包
    打开项目根目录下的build.gradle文件,将AGP依赖修改为classpath 'com.android.tools.build:gradle:7.4.2'
    *7.4.2版本AGP原生支持<queries>标签,同时完美兼容M1 ARM架构,不需要额外引入兼容插件。
  • 固定Gradle使用的JDK版本
    打开Android Studio,依次进入Settings > Build, Execution, Deployment > Build Tools > Gradle,将Gradle JDK选项设置为Android Studio自带的JDK 17,同时勾选Use Gradle from: gradle-wrapper.properties,不要手动指定本地安装的高版本JDK。
  • 清理构建缓存
    在项目根目录终端依次执行如下命令:
    flutter clean
    cd android && ./gradlew clean && cd ..
    flutter pub get
    
  • 校验清单文件层级
    打开android/app/src/main/AndroidManifest.xml,确认<queries>标签直接嵌套在<manifest>根节点下,与<application>标签平级,禁止将<queries>放在<application>标签内部。正确层级参考:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="your.app.package">
        <!-- queries标签必须和application平级 -->
        <queries>
            <intent>
                <action android:name="android.intent.action.VIEW" />
            </intent>
        </queries>
    
        <application
            android:name="${applicationName}"
            android:icon="@mipmap/ic_launcher"
            android:label="your_app_name">
            <!-- Activity、Service等组件配置 -->
        </application>
    </manifest>
    

注意:不需要降级Gradle版本,强制降级只会触发JDK版本不兼容问题,按上述步骤对齐版本后重新运行即可正常构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:57:23