Flutter android debug 编译报错问题。插件编译报错

下面相关内容 都以 Mac 电脑为例子。

一、问题

起因:(更新 Android studio 2024.2.2.13、 Flutter SDK 3.27.2)
  1. 最近 2025年 1 月 左右,我更新了 Android studio 和 Flutter SDK 再运行就会出现下面的问题。
  2. 当然 下面的提示只是其中之一,即便把所有插件都更新了 仍然不行,解决一个还会有第二个插件提示错误 flutter_localizations、firebase_messaging 等等 一个接一个全出现编译错误。

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':shared_preferences_android:compileDebugJavaWithJavac'.

> Could not resolve all files for configuration ':shared_preferences_android: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: C:\Users\sdvs1\AppData\Local\Android\sdk\platforms\android-34\core-for-system-modules.jar.

> Error while executing process C:\Program Files\Android\Android Studio_2024_2_1_9\jbr\bin\jlink.exe with arguments {--module-path C:\Users\sdvs1\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\temp\jmod --add-modules java.base --output C:\Users\sdvs1\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\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.

二、尝试查找原因

恢复老版本

  1. 并没有想太多 一定是更新所致, 所以尝试恢复了之前的版本,(Android studio giraffe、 Flutter SDK 3.22) 果然都正常工作了。

再次升级最新版本:(Android studio 2024.2.2.13、 Flutter SDK 3.27.2)

  1. 目的:新项目 不再想用老版本, 想都统一升级一下技术栈**(再次升级最新版)**
  2. 用新的 Flutter SDK 重新创建版本 ,安装项目依赖(所有依赖更新到最新版本)仍然出现错误。(空白项目可以启动,安装项目依赖例如:shared_preferences 就开始报错 )

查到 Flutter GitHub 有相关 issues: (不止个例 大部分人都出现了相关问题)

  1. issues 地址 Android plugins: `Failed to transform core-for-system-modules.jar to match attributes` errors with JDK 21 · Issue #156304 · flutter/flutter · GitHub
  2. 问题似乎出在 Android studio 身上。(最新版本 android studio 自带了 JDK 21)
  3. 手动修改 jdk 版本**(JDK 17)**
    1. 修改 JDK 文件路径 : android/app/build.gradle
      1.

      复制代码
             compileOptions {
               sourceCompatibility JavaVersion.VERSION_17
               targetCompatibility JavaVersion.VERSION_17
             }
      
             kotlinOptions {
                 jvmTarget = JavaVersion.VERSION_17
             }
    2. 修改构建工具包 gradle 文件路径 :android/gradle/wrapper/gradle-wrapper.properties
      1.

      复制代码
         distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
    3. 修改 android/settings.gradle
      1.

      复制代码
             id "com.android.application" version "8.3.1" apply false

开始正常运行

未知原因:心力憔悴

  1. 但是由于我不小心打开了其他 android 项目 导致下载了其他的 gradle。 不知道是不是这个原因, 又开始报错了~

三、一劳永逸(解决)

准备降级Android stuido 最近可用的版本。(这个 JDK 21 目前来讲感觉很坑,或许是我没搞明白吧)

  1. 经过多个版本尝试 (最终下载 Android Studio Koala Feature Drop | 2024.1.2)
    1. Android Studio 历史版本下载地址: (只有英文版页面才能看到列表)Android Studio 下载文件归档 | Android Developers
  2. 安装前 把之前版本 Android studio 删除
  3. 删除 与 资源库 同级的 AndroidStudioProjects 文件夹
  4. 删除资源库内的 Android , 如果有 java 文件夹 一并删除。

为防止出现意外情况,请务必按照上面说的卸载干净。

安装 (Android Studio Koala Feature Drop | 2024.1.2)

检查 Flutter Android 是否使用了 jdk17

执行 下面命令 即可出现上图的检查内容。java sdk 会默认指向 17 的版本

复制代码
flutter doctor -v

当然如果 Flutter SDK 版本内容之间差距有些大,我的建议最好用当前的 Flutter SDK 重新初始化一个项目, 把老项目迁移过来即可,个人感觉成本要比老项目改低的多。

(如果按照这个解决方式、初始化新的项目 就不必按照上面 去修改build.gradle、gradle-wrapper.properties、settings.gradle 等..配置文件了)

相关推荐
应用市场18 分钟前
Android Recovery 模式工作原理与定制实战
android
liulian09163 小时前
Flutter 网络状态与内容分享库:connectivity_plus 与 share_plus 的 OpenHarmony 适配指南
网络·flutter
应用市场3 小时前
eMMC 与 UFS 存储原理及在 Android 中的应用
android
随遇丿而安3 小时前
第4周:ImageView 最怕的不是不会显示图片,而是显示得“不对劲”
android
Mart!nHu3 小时前
Android10 添加以太网网络共享功能
android·以太网共享
KKei16383 小时前
Flutter for OpenHarmony 学习视频播放器技术文章
学习·flutter·华为·音视频·harmonyos
KKei16384 小时前
Flutter for OpenHarmony 健身计划与运动打卡APP
flutter·华为·harmonyos
KKei16385 小时前
Flutter for OpenHarmony 在线考试与自测系统APP技术文章
flutter·华为·harmonyos
修炼者5 小时前
bitmap和drawable的互相转换
android
美狐美颜SDK开放平台6 小时前
美颜SDK接入流程详解:Android、iOS、鸿蒙兼容方案解析
android·人工智能·ios·华为·harmonyos·美颜sdk·视频美颜sdk