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

新Mac上Flutter项目Gradle构建失败:JdkImageTransform报错及SDK XML问题

Flutter新Mac环境下Gradle构建失败解决方案

问题场景

在新Mac(ARM64架构)上运行Flutter应用时遭遇Gradle构建失败,同一项目在旧电脑可正常运行。已尝试更换Java版本、验证Gradle兼容性等操作,问题仍未解决。

完整错误信息

Running Gradle task 'assembleDebug'...
Warning: This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':device_info_plus:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':device_info_plus:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform: /Users/novostack/Library/Android/sdk/platforms/android-34/core-for-system-modules.jar.
         > Error while executing process /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/jlink with arguments {--module-path /Users/novostack/.gradle/caches/transforms-3/3be12b51fb10ef20077e84b3313a7db4/transformed/output/temp/jmod --add-modules java.base --output /Users/novostack/.gradle/caches/transforms-3/3be12b51fb10ef20077e84b3313a7db4/transformed/output/jdkImage --disable-plugin system-modules}

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 28s
Error: Gradle task assembleDebug failed with exit code 1

环境配置

  • 设备:MacBook (macOS 15.0 24A335, ARM64)
  • Flutter:3.24.5
  • Dart:2.19.1
  • Android Studio:2024.2.1 Patch 1
  • Java:21.0.5 LTS(Oracle HotSpot)
  • Gradle:8.4

已尝试的解决步骤

  • 执行flutter clean
  • 重新安装Android SDK工具
  • 切换Java 17/21版本
  • 验证Gradle与Java兼容性
  • 接受Android SDK必要许可证
  • 移除device_info_plus依赖后,其他包仍报错

问题分析与解决方案

问题根源

该问题与SDK XML版本不匹配及组件版本兼容性均有关:

  1. SDK XML版本警告:Android Studio与命令行SDK工具版本不一致,导致旧工具无法识别新版本(v4)的SDK XML配置文件。
  2. jdkImageTransform错误:系统安装的Java与Android Studio内置JBR(JetBrains Runtime)存在差异,或Android Gradle Plugin(AGP)版本与Flutter、Gradle版本不匹配,导致Jlink工具处理系统模块时失败。

解决步骤

  1. 强制Gradle使用Android Studio内置JDK
    在项目的android/gradle.properties文件中添加以下配置,避免系统JDK与内置JBR的兼容性问题:

    org.gradle.java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home
    
  2. 统一Android Gradle Plugin(AGP)版本
    打开项目的android/build.gradle文件,将AGP版本更新为与Android Studio 2024.2.1匹配的稳定版:

    buildscript {
        dependencies {
            classpath 'com.android.tools.build:gradle:8.3.2'
            // 其他依赖...
        }
    }
    

    确保gradle/wrapper/gradle-wrapper.properties中的Gradle版本为8.4(与AGP 8.3.x兼容):

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
    
  3. 修复SDK XML版本不匹配问题
    打开Android Studio的「SDK Manager」:

    • 切换到「SDK Tools」标签,勾选「Show Package Details」
    • 卸载所有旧版本的「Android SDK Command-line Tools」,仅保留最新版本(与Android Studio 2024.2.1适配)
    • 检查「SDK Platforms」中Android 34的安装完整性,若有损坏则重新安装
  4. 清理缓存并重建项目
    执行以下命令彻底清理缓存并重新构建:

    flutter clean
    rm -rf ~/.gradle/caches
    cd android && ./gradlew clean build --refresh-dependencies
    cd .. && flutter run
    

兼容性验证

Flutter 3.24.5支持的组件版本范围:

  • AGP:7.4 ~ 8.3
  • Gradle:7.5 ~ 8.4
  • Java:17 / 21
    当前环境版本均在兼容范围内,只需确保AGP与Gradle版本匹配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:14:51