当前位置: 首页 > news >正文

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

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

一、问题

  1. 起因:(更新 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. 恢复老版本

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

    1. 目的:新项目 不再想用老版本, 想都统一升级一下技术栈(再次升级最新版)
    2. 用新的 Flutter SDK 重新创建版本,安装项目依赖(所有依赖更新到最新版本)仍然出现错误。(空白项目可以启动,安装项目依赖例如:shared_preferences 就开始报错 )
  3.  查到 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_17targetCompatibility 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
  4. 开始正常运行

  5. 未知原因:心力憔悴

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

  三、一劳永逸(解决)

  1. 准备降级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 文件夹 一并删除。
  2. 为防止出现意外情况,请务必按照上面说的卸载干净。

  3. 安装 (Android Studio Koala Feature Drop | 2024.1.2)

  4. 检查 Flutter Android 是否使用了 jdk17

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

flutter doctor -v

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

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

http://www.lryc.cn/news/526126.html

相关文章:

  • 关于IPD流程的学习理解和使用
  • C# 类(Class)
  • Jenkins pipline怎么设置定时跑脚本
  • PostgreSQL模糊查询相关学习参考
  • 【电脑无法通过鼠标和键盘唤醒应该怎么办】
  • Java 大视界 -- Java 大数据中的数据脱敏技术与合规实践(60)
  • Vue3.5 企业级管理系统实战(三):页面布局及样式处理 (Scss UnoCSS )
  • 【xcode 16.2】升级xcode后mac端flutter版的sentry报错
  • windows在命令行中切换盘符
  • 亚博microros小车-原生ubuntu支持系列:11手指控制与手势识别
  • JAVA-快速排序
  • 日志收集Day003
  • 基于quartz,刷新定时器的cron表达式
  • 数学大模型MAmmoTH:通过混合说明调整建立数学通才模型
  • Opencv学习
  • python生成图片和pdf,快速
  • 剑指Offer|LCR 044.在每个树行中找最大值
  • PWM信号概述
  • 关于BAR(PCIE BAR或AXI BAR)的解释
  • 计算机的错误计算(二百二十一)
  • 【力扣Hot 100】矩阵1
  • 移动端VR处理器和传统显卡的不同
  • 「 机器人 」利用数据驱动模型替代仿真器:加速策略训练并降低硬件依赖
  • MATLAB 如何避免复杂shp文件对inpolygon的影响
  • 【2024年华为OD机试】 (C卷,200分)- 贪吃的猴子(JavaScriptJava PythonC/C++)
  • PostgreSQL中级专家是什么意思?
  • 从根源分析,调试,定位和解决MacOS ld: unsupported tapi file type ‘!tapi-tbd‘ in YAML file
  • 【Uniapp-Vue3】previewImage图片预览
  • doris:Insert Into Values
  • 15 分布式锁和分布式session