gradle版本和agp版本必须严格对齐,不能靠猜:先确认gradle-wrapper.properties中的distributionurl指定gradle版本,再匹配build.gradle.kts中agp插件版本,同时确保jdk为17,否则同步或编译必失败。

Gradle版本和AGP版本必须严格对齐,不能靠猜
Android Studio 2024及之后的项目,AGP 和 Gradle 不是“差不多就行”的关系——错一个次要版本就同步失败。你看到的 This version of Android Gradle Plugin requires a newer Gradle version 或 Could not find com.android.tools.build:gradle:x.x.x,基本都是因为二者没对上。官方不提供模糊兼容区间,只声明最低要求,而实际构建中用低于该要求的版本,100%报错。
先看 gradle-wrapper.properties,再改 build.gradle.kts
匹配动作分两步,顺序不能反:Gradle Wrapper 是执行环境,AGP 是插件逻辑,环境得先准备好,插件才能加载。
-
gradle/wrapper/gradle-wrapper.properties里的distributionUrl决定本地用哪个 Gradle 版本,比如gradle-8.9-bin.zip - 项目级
build.gradle.kts(或build.gradle)中plugins { id("com.android.application") version "8.7.2" }的版本号,必须与上面的 Gradle 版本兼容 - 查匹配表不能只看“最低”,还要避开已知 bug 版本。例如
AGP 8.7.2官方要求Gradle 8.9,但实测8.9.2在某些 JDK 17.0.2 环境下有缓存冲突,换8.9或8.10.2更稳
老项目降级时最容易漏掉 JDK 版本检查
AGP 8.0+ 强制要求 JDK 17,但很多人只改了 gradle-wrapper.properties 和 build.gradle.kts,却忘了 Android Studio 默认用自带 JBR,而老项目可能还在用 JAVA_HOME 指向 JDK 8 或 11。结果就是 Sync 成功、编译失败,报错像 Unsupported class file major version 65(JDK 17 的 class 文件版本号)。
远程控制 Android 设备,支持截图、自动化操作手机 App 等功能。本应用使用 uiautomator2 作为底层框架,通过 ADB 连接设备,用户无需 Root(1)查看手机屏幕;(2)自动化操作手机 App;(3)远程安装/卸载应用……
- 在 Android Studio 中:File → Project Structure → SDK Location → JDK location,确认指向的是 JDK 17 路径
- 命令行构建时:
export JAVA_HOME=/path/to/jdk-17必须生效,且与gradle -v输出的 JVM 版本一致 - 如果项目是
compileSdkVersion 25这类老 API,别盲目升 AGP;AGP 7.4.2 + Gradle 7.6.2是目前最稳定的组合,强行套新版本反而触发 BouncyCastle 或 FileProvider 兼容问题
同步失败后别乱点“Try Again”,先看错误提示里带的版本号
Android Studio 的报错信息其实很诚实,关键信息都藏在第一行或堆栈顶部。比如:
Minimum supported Gradle version is 8.7. Current version is 8.0.
这句就直接告诉你:当前 gradle-wrapper.properties 里是 8.0,但项目需要至少 8.7。这时候你应该:
- 打开
gradle-wrapper.properties,把distributionUrl改成gradle-8.7-bin.zip或更高(推荐8.9) - 再打开
build.gradle.kts,检查id("com.android.application") version是否对应,比如"8.5.0"或"8.7.2" - 改完不要急着 Sync,先关掉 Android Studio,删掉项目根目录下的
.gradle和build目录,再重开 —— 否则旧缓存可能干扰新版本识别
真正麻烦的不是版本数字本身,而是每个版本背后绑定的字节码规范、依赖解析策略和构建缓存行为。一次改错,可能引发三处隐性不兼容。动手前,先确认你改的是哪一层:是 Wrapper?是插件?还是 JDK?漏掉任何一层,都会让 Sync 表面成功、实际埋雷。










