最近在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
感谢大家的支持,如有错误请指正,如需转载请标明原文出处!