Flutter运行错误:UG! exception in phase ‘semantic analysis‘

embedded/2025/3/26 6:05:45/

在这里插入图片描述

最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下:
在这里插入图片描述

执行命令查看版本信息:

flutter doctor --verbose

通过输出信息Java version OpenJDK Runtime Environment (build 21.0.4±12422083-b607.1)可以知道是JDK版本不兼容问题,Flutter构建的时候默认使用了Android Studio内置的OpenJDK,最后总结了两种解决方案。

方案一:gradle.properties中配置org.gradle.java.home

通过直接修改android目录下gradle.properties指定JDK路径

org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

方案二:修改gradle版本

因为Flutter工程在Settings -> Build, Execution, Deployment -> Build Tools -> Gradle下看不到JDK配置项。
在这里插入图片描述
而正常的Android工程可以直接配置:
在这里插入图片描述

因此,首先通过android studio导入android目录下的子工程,然后进行配置。这时候可能会报错

在这里插入图片描述
根据版本对照表,修改gradle版本:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip

通过上面的设置就可以解决了。

附录:Java版本和Gradle版本对照表

Java VersionSupport for ToolchainsSupport for Running Gradle
8N/A2.0
9N/A4.3
10N/A4.7
11N/A5.0
12N/A5.4
13N/A6.0
14N/A6.3
156.76.7
167.07.0
177.37.3
187.57.5
197.67.6
208.18.3
218.48.5
228.78.8
238.108.10
24N/AN/A

官方地址:https://docs.gradle.org/current/userguide/compatibility.html#java

感谢大家的支持,如有错误请指正,如需转载请标明原文出处!


http://www.ppmy.cn/embedded/174542.html

相关文章

技术分享 | MySQL内存使用率高问题排查

本文为墨天轮数据库管理服务团队第51期技术分享,内容原创,如需转载请联系小墨(VX:modb666)并注明来源。 一、问题现象 问题实例mysql进程实际内存使用率过高 二、问题排查 2.1 参数检查 mysql版本 :8.0.…

【江协科技STM32】软件I2C协议层读写MPU6050驱动层

回顾知识点: 【STM32】I2C通信协议&MPU6050芯片-学习笔记-CSDN博客 接线图 整体思路 I2C初始化 软件I2C只需要用GPIO读取函数就可以,不用I2C库函数; ① 把SCL和SDA都初始化成开漏输出模式(开漏输出不只是只能输出、也可以输…

C# 语法糖

三元运算符 &#xff1f;&#xff1a; 使用前 int value -2; if (value < 0) {value 0; } else {value 1; } 使用后 int value -2; value value < 0 ? 0 : 1; Null 合并操作符 &#xff1f;&#xff1f; 使用前 string value GetString(); if (value null…

MySQL请求处理全流程深度解析:从SQL语句到数据返回

MySQL请求处理全流程深度解析&#xff1a;从SQL语句到数据返回 一、MySQL架构全景图 MySQL采用经典的 C/S架构 和 分层设计&#xff0c;其核心模块协同工作流程如下&#xff1a; #mermaid-svg-pAjkxRXUlfrCCRoj {font-family:"trebuchet ms",verdana,arial,sans-se…

HCIP交换机hybrid接口实验

目录 一、实验拓扑 二、实验需求 三、需求分析 四、实验步骤 1、交换机上的配置 SW1&#xff1a; SW2: SW3: 2、路由器上的配置 五、实验结果 1.dhcp获取结果验证 2.连通性测试 六、本练习难点 一、实验拓扑 二、实验需求 1、PC1和PC3所在接口为access接口&#x…

基于视觉的核桃分级与套膜装置研究(大纲)

基于视觉的核桃分级与套膜装置研究&#xff1a;从设计到实现的完整指南 &#xff08;SolidWorks、OpenCV、STM32开发实践&#xff09; &#x1f31f; 项目背景与目标 1.1 为什么选择视觉分级与套膜&#xff1f; 产业痛点&#xff1a; 中国核桃年产量全球第一&#xff0c;但…

执行adb指令报错:error: more than one device/emulator原因及解决方法

1、排查步骤 查看设备详细信息 运行以下命令&#xff0c;观察设备的型号和状态&#xff1a; adb devices 2、在没有连接设备的情况下显示如下 List of devices attached 192.168.1.100:5555 3、可能存在的问题及解决方法&#xff1a; a.断开所有设备后检查拔掉 USB 线&a…

redis分片集群如何解决高并发写问题的?

不使用分片集群&#xff0c;仅使用主从复制和哨兵模式下&#xff0c;可以有多个主从集群&#xff0c;但每个主从集群一般只有一个活跃的主节点并执行写操作&#xff0c;每个主从集群的数据也可能&#xff08;应该&#xff09;是不同的&#xff0c;同时每个主从集群存储的数据没…