项目指定的Gradle版本以gradle-wrapper.properties中distributionUrl的版本号为准,如gradle-8.9-all.zip即为8.9;该文件是权威来源,不依赖AS界面、本地安装或./gradlew -v输出。

直接看 gradle-wrapper.properties 文件最后一行
项目指定的 Gradle 版本就写死在这个文件里,不是看本地装了什么,也不是看 Android Studio 设置里选了什么。打开项目根目录下的 gradle/wrapper/gradle-wrapper.properties,找到 distributionUrl 这一行:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
这里 gradle-8.9-all.zip 中的 8.9 就是项目强制要求的版本。注意:路径中可能含转义符(\:),但版本号本身清晰可读。
- 如果项目用的是
gradle-7.5-bin.zip,那版本就是7.5;-bin和-all不影响版本号识别 - 某些老项目会把版本写在
build.gradle的wrapper块里,例如wrapper { gradleVersion = '7.0.2' },但这是极少数情况,优先以gradle-wrapper.properties为准 - Android Studio 的 Project Structure 界面显示的“Gradle version”字段,其实也是读取这个文件——它只是个展示层,不是源头
./gradlew -v 显示的是实际运行时版本,不等于项目指定版本
执行 ./gradlew -v(mac/Linux)或 gradlew -v(Windows)看到的 Gradle 版本,是当前 wrapper 下载并解压后真正加载的那个版本。它可能和 gradle-wrapper.properties 里写的不一致,常见于:
- 本地已有旧版缓存(比如
.gradle/wrapper/dists/gradle-7.4-all/xxx),而项目已升级到8.9,但没触发重新下载 - 手动改过
distributionUrl,但没点 Sync 或没运行过./gradlew,导致 AS 还在用旧缓存 - 网络问题导致下载卡住,AS 降级使用了本地已有的低版本
所以这个命令适合验证“当前生效版本”,而不是“项目声明版本”。想确认是否对齐,得比对 gradle-wrapper.properties 和 .gradle/wrapper/dists/ 下实际解压出的文件夹名。
为什么不能只信 Android Studio 的 UI 提示?
AS 的 “Project Structure → Project” 面板有时会显示一个灰色、不可编辑的 Gradle 版本号,但它可能滞后:
- 刚拉下新项目,还没点过 Sync,UI 仍显示上一个项目的缓存版本
- 修改了
gradle-wrapper.properties但没重启 AS 或刷新 Gradle 工具窗口,UI 不会自动更新 - 多模块项目中,不同子模块可能隐式依赖不同 wrapper,AS 主界面只显示根项目的配置,容易误判
最稳的方式永远是打开文件看 distributionUrl —— 它不会骗人,也不依赖 IDE 状态。
同步失败时,怎么快速定位版本冲突?
当出现 Minimum supported Gradle version is x.x.x 或 Plugin [com.android.application] was not found 这类报错,本质是 gradle-wrapper.properties 指定的版本与项目中使用的 Android Gradle 插件(AGP)不兼容。此时要查两处:
- 项目 AGP 版本:看根目录
build.gradle(Groovy)或build.gradle.kts(Kotlin)里com.android.tools.build:gradle的版本号,例如8.7.2 - 查官方对应表:AGP
8.7.x要求 Gradle8.9+,如果你的distributionUrl是gradle-8.7-all.zip,就得手动升到8.9 - 改完
gradle-wrapper.properties后,必须执行./gradlew --version或点击 AS 的 “Sync Project With Gradle Files”,否则改动不生效
别跳过这一步:很多团队成员改完配置就直接编译,结果还在用旧 wrapper,报错依旧。











