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

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

相关推荐
西西学代码5 小时前
Flutter---GridView+自定义控件
flutter
hweiyu0011 小时前
Flutter零基础极速入门到进阶实战(视频教程)
flutter
hweiyu0011 小时前
Flutter高级进阶教程(视频教程)
flutter
SoaringHeart1 天前
Flutter封装:原生路由管理极简封装 AppNavigator
前端·flutter
疯笔码良2 天前
【Flutter】flutter安装并在Xcode上应用
flutter·macos·xcode
西西学代码2 天前
Flutter---两种带输入框的对话框
flutter
西西学代码2 天前
Flutter---Button
flutter
Miketutu2 天前
Flutter布局 --- Container
flutter
QuantumLeap丶2 天前
《Flutter全栈开发实战指南:从零到高级》- 01 - 从零开始搭建你的第一个Flutter应用
flutter