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

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

相关推荐
GitLqr10 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
唐诺12 小时前
Flutter Pigeon 跨端通信实战指南
flutter·pigeon
浮江雾12 小时前
Flutter第十七节-----路由管理(3)
android·开发语言·前端·javascript·flutter·入门
程序员老刘14 小时前
Flutter版本选择指南:3.44密集修BUG,9月大限将至 | 2026年7月
flutter·ai编程·客户端
恋猫de小郭18 小时前
Flutter 3D 渲染的全新选择和应用场景
android·前端·flutter
敲代码日常19 小时前
不会Flutter,怎么做服药提醒APP
flutter
浮江雾2 天前
Flutter第十六节-----路由管理(2)
android·开发语言·前端·javascript·flutter·html
恋猫de小郭2 天前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter