> 技术文档 > 确定 Flutter SDK 及其关联的 Gradle 版本与适配的 JDK 版本_flutter gradle版本

确定 Flutter SDK 及其关联的 Gradle 版本与适配的 JDK 版本_flutter gradle版本

最近在编写 Flutter 项目,发现不同的 Flutter SDK 版本有着不一样的 Gradle 版本,然后不同的 Gradle 版本需要不同的 JDK 版本。只有当三者都一致匹配时,才能正常的完成编译

首先,我们可以确定 Flutter SDK 对应的 Gradle 版本。我们每个下载的 Flutter 的 SDK 中都有这样一个示例工程目录,我们打开其中的一个来查看其官方配置的 Gradle 版本,例如:

flutter\\examples\\hello_world\\android\\gradle\\wrapper

我们打开 gradle-wrapper.properties 既可以找到对应的 Gradle 版本,例如我这里 3.7.12 版本的 SDK 对应的是

distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\\://services.gradle.org/distributions/gradle-7.5-all.zip

可以发现对应的 Gradle 版本是 7.5,我们可以通过这个表来找到对应的 JDK 版本是 18

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

然后我们需要手动设置 Flutter SDK 编译使用的 JDK 路径

flutter config --jdk-dir=D:\\JDK\\jdk-18

如果你不知道 JDK 的路径可以使用如下指令查询:

/usr/libexec/java_home -V

然后推荐使用 jenv 来管理不同 Shell 的 JDK 版本

我们可以运行如下命令检查:

 flutter doctor --verbose 

得到如下的信息:

[] Android toolchain - develop for Android devices (Android SDK version 35.0.1) • Android SDK at C:\\Users\\hucao\\AppData\\Local\\Android\\sdk • Platform android-Baklava, build-tools 35.0.1 • Java binary at: D:\\JDK\\jdk-18.0.2\\bin\\java • Java version OpenJDK Runtime Environment (build 18.0.2+9-61) • All Android licenses accepted.

说明我们已经修改成功了