确定 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
然后我们需要手动设置 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.
说明我们已经修改成功了