应升级java至gradle要求的最低版本或降级gradle以匹配当前java,优先检查./gradlew --version输出的jvm版本,并通过org.gradle.java.home或ide的gradle jvm设置指定兼容jdk路径。

Gradle启动时提示Java版本过低怎么办
Gradle启动失败并报“Java version is too low”或类似提示,说明它运行所需的最低JVM版本没达到——不是你的项目代码用的Java太低,而是Gradle自身进程卡在了启动阶段。必须让gradle命令背后那个JVM满足其最低要求。
确认Gradle实际使用的JVM版本
很多人只查java -version,但Gradle可能根本没用这个。它优先读取:org.gradle.java.home配置、IDE里设置的Gradle JDK、系统JAVA_HOME(按此顺序 fallback)。错误日志第一行通常就写着:Starting Gradle Daemon with Java 17.0.8——那才是真实版本。
验证方式:
- 运行
./gradlew --version,看输出中“JVM”那一行 - 检查
gradle.properties是否设置了org.gradle.java.home=/path/to/jdk17 - 在Android Studio或IntelliJ中:Settings → Build → Build Tools → Gradle → Gradle JVM
升级Java还是降级Gradle?看版本矩阵
别盲目升级。2026年主流组合是:Gradle 8.13+要求Java 21,Gradle 8.4–8.12支持Java 21但非强制,Gradle 8.0–8.3最高只认到Java 19。如果你用的是Gradle 7.6,它根本不认识Java 21的字节码,哪怕你硬指定org.gradle.java.home也没用——会直接报Unsupported major.minor version。
快速判断依据:
- 错误含
major.minor version 65.0→ Java 21,需Gradle ≥ 8.4 - 错误含
major.minor version 61.0→ Java 17,Gradle 7.3+即可 - Gradle 6.x系列最高只支持Java 15(
major.minor 59.0)
临时绕过但不推荐的写法
有些人在gradle.properties里加org.gradle.jvmargs=--illegal-access=permit,这解决不了版本不匹配问题,只是掩盖反射警告。真正有效的只有两条路:
- 改
gradle-wrapper.properties里的distributionUrl,换兼容的Gradle版本(如从gradle-7.5.1升到gradle-8.14.3) - 用
SDKMAN装一个旧版JDK(如java 17.0.11-tem),再通过org.gradle.java.home精准绑定 - 绝对不要只改
sourceCompatibility——那是编译源码用的,和Gradle运行时无关
最容易被忽略的一点:Android Studio里“Project SDK”和“Gradle JDK”是两个独立下拉框,改完前者不等于后者自动同步。每次换JDK后,务必手动核对Gradle JVM设置是否已更新。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











