avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页 确定 Flutter SDK 及其关联的 Gradle 版本
文章

确定 Flutter SDK 及其关联的 Gradle 版本

发表于 2025-09-14 更新于 2025-09- 14
作者 mdo
3~5 分钟 阅读

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

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

`flutterexampleshello_worldandroidgradlewrapper` 

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

`distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=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:JDKjdk-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:UsershucaoAppDataLocalAndroidsdk
    • Platform android-Baklava, build-tools 35.0.1
    • Java binary at: D:JDKjdk-18.0.2binjava
    • Java version OpenJDK Runtime Environment (build 18.0.2+9-61)
    • All Android licenses accepted.` 

说明我们已经修改成功了

知识库
关联
许可协议:  CC BY 4.0
分享

相关文章

7月 21, 2026

think-orm 2.0.62 单独设置数据表字段缓存驱动和数据缓存驱动

think-cache 拥有强大的多通道(Multi-store)管理能力,但问题的根源在于 think-orm 底层的调用机制太死板。即使您在 think-cache 中配置了 file 和 redis 两个完全独立的通道,think-orm 默认也只会向您通过 Db::setCache() 注入

7月 1, 2026

WebSocket Server + 独立 RPC Server

从架构角度来说,它已经接近 think-swoole 能做到的极限了,但是我仍然不建议继续这样维护。 原因不是代码写法,而是 think-swoole 本身的事件模型。 第一处问题:addListener() 仍然共享 Worker 你的代码: $rpcServer = $server->addLi

6月 25, 2026

Linux | Reqable · API抓包调试 + API测试一站式工具

Reqable是什么? Reqable = Fiddler + Charles + Postman 极简的设计、极高的性能、丰富的功能、桌面手机多端平台。 多协议流量分析 基于经典的MITM中间人代理方案捕获和分析您的应用流量,自适应HTTP/HTTPS/SOCKS4/SOCKS5等多种代理协议,并

下一篇

如何确定Java版本兼容的gradle版本

上一篇

Flutter 报错: Because every version of flutter_test from sdk depends on xxx, xxx depends on path xxx

最近更新

  • 完美地解决 TP3 老系统数据的平滑读取
  • thinkphp3 redis序列化和反序列化
  • Table 空间极易发生哈希冲突并溢出
  • 将监控程序直接跑在云端
  • AI 驱动型 Facebook 群组关键词监控 Chrome 浏览器插件

热门标签

API CodeGeex Gitkraken Management Manticore Premiere Sublime Swoole ThinkPHP ThinkPHP5

目录

©2026 mdo. 保留部分权利。