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

最近在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 Version Support for Toolchains Support for Running Gradle
8 N/A 2.0
9 N/A 4.3
10 N/A 4.7
11 N/A 5.0
12 N/A 5.4
13 N/A 6.0
14 N/A 6.3
15 6.7 6.7
16 7.0 7.0
17 7.3 7.3
18 7.5 7.5
19 7.6 7.6
20 8.1 8.3
21 8.4 8.5
22 8.7 8.8
23 8.10 8.10
24 N/A N/A

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

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

相关推荐
火柴就是我1 小时前
学习一些常用的混合模式之BlendMode. dst_atop
android·flutter
火柴就是我1 小时前
学习一些常用的混合模式之BlendMode. dstIn
android·flutter
火柴就是我4 小时前
学习一些常用的混合模式之BlendMode. dst
android·flutter
前端不太难4 小时前
Sliver 为什么能天然缩小 rebuild 影响面
flutter·性能优化·状态模式
带带弟弟学爬虫__5 小时前
Flutter 逆向想学却无从下手?
flutter
行者966 小时前
Flutter跨平台开发:颜色选择器适配OpenHarmony
flutter·harmonyos·鸿蒙
不爱吃糖的程序媛6 小时前
深度解析OpenHarmony跨平台框架生态:RN、Flutter、Cordova、KMP四大方向全梳理
flutter
kirk_wang6 小时前
Flutter艺术探索-Flutter样式系统:TextStyle与主题配置
flutter·移动开发·flutter教程·移动开发教程
火柴就是我7 小时前
Flutter 混合模式下:saveLayer 混合注意点
android·flutter
AiFlutter7 小时前
四、动画图表(03):饼图
flutter·低代码·低代码平台·aiflutter·aiflutter低代码