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

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

相关推荐
getapi17 分钟前
为什么 uni-app 开发的 App 没有明显出现屏幕适配问题Flutter 开发的 App 出现了屏幕适配问题
flutter·uni-app
getapi21 分钟前
使用 Flutter 开发 App 时,想要根据 Figma 设计稿开发出响应式 UI 界面
flutter·ui·figma
只可远观22 分钟前
Flutter GridView网格组件
flutter
jianleepb2 小时前
2025Flutter(安卓)面试题详解
flutter
90后的晨仔5 小时前
Flutter 中常见的几种页面跳转方式
前端·flutter
90后的晨仔6 小时前
Flutter滚动组件全面解析
前端·flutter
张风捷特烈7 小时前
每日一题 Flutter#2 | 如何理解 Widget 的不可变性
android·flutter·面试
李新_19 小时前
我们使用了哪些Flutter 三方库(二)
android·flutter·ios
getapi1 天前
flutter开发安卓APP适配不同尺寸的手机屏幕
android·flutter·智能手机
倾云鹤1 天前
Flutter实现不规则瀑布流布局拖拽重排序
flutter