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

Flutter更新后Android构建失败:android.multidex不存在及Gradle编译报错

问题解决思路

核心错误说明

更新Flutter到3.22.0后遇到两个Android构建问题:

  1. 执行flutter run时提示android.multidex不存在,构建失败
  2. 直接在Android项目目录执行./gradlew clean时,出现:gradle:compileGroovy任务失败,错误信息:

BUG! exception in phase 'semantic analysis' in source unit '/opt/homebrew/Caskroom/flutter/3.22.0/flutter/packages/flutter_tools/gradle/src/main/groovy/app_plugin_loader.groovy' Unsupported class file major version 65

附flutter doctor中文摘要:
[✓] Flutter(稳定通道,3.22.0,运行于 macOS 14.4.1 23E224 darwin-arm64,区域设置 en-US)
[✓] Android 工具链 - 开发 Android 设备(Android SDK 版本 34.0.0)
[✓] Xcode - 开发 iOS 和 macOS(Xcode 15.0.1)
[✗] Chrome - 开发 Web(无法在 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome 找到 Chrome 可执行文件)
! 找不到 Chrome。尝试设置 CHROME_EXECUTABLE 指向 Chrome 可执行文件。
[✓] Android Studio(版本 2023.3)
[✓] VS Code(版本 1.88.0)
[✓] 已连接设备(3 台可用)
[✓] 网络资源


分步解决方法

1. 解决Gradle Groovy编译错误(Unsupported class file major version 65)

这个错误是Gradle版本与JDK版本不兼容导致的:major version 65对应JDK 21,而旧版Gradle不支持该版本。

  • 更新Gradle版本:
    打开项目的android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl为Flutter 3.22.0兼容的版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
    
  • 匹配JDK版本:
    Android Studio 2023.3默认使用JDK 21,确保Gradle版本支持该JDK(Gradle 8.x支持JDK 17-21)。可在Android Studio中设置项目JDK:
    1. 打开File > Project Structure > SDK Location
    2. 将JDK Location切换到Android Studio内置JDK(路径通常为/Applications/Android Studio.app/Contents/jbr/Contents/Home)
  • 同步项目:点击Android Studio工具栏的Sync Project with Gradle Files,或执行flutter pub get

2. 解决android.multidex不存在错误

该问题源于Multidex配置缺失或依赖未正确引入:

  • 启用Multidex并添加依赖:
    打开android/app/build.gradle文件,做以下修改:
    android {
        defaultConfig {
            // 添加这一行
            multiDexEnabled true
        }
    }
    
    dependencies {
        // 添加Multidex依赖
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    
  • 配置Application类:
    • 如果你的项目使用默认的FlutterApplication,无需额外修改
    • 如果是自定义Application类,需让它继承MultiDexApplication,或在attachBaseContext方法中加入:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
  • 清理重建:执行flutter clean后再运行flutter run

额外排查点

  • 检查Android Gradle插件(AGP)版本:打开android/build.gradle,确保classpath "com.android.tools.build:gradle:x.x.x"版本为8.2+(如8.2.2),与Gradle版本匹配
  • 确认项目中所有第三方插件的Gradle配置与当前项目的Gradle/AGP版本兼容,避免版本冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:05:11