必须降级到AGP 8.1.3并匹配Gradle 7.5–8.0(如gradle-8.0-bin.zip),同时Kotlin插件版本不低于1.9.0,否则因硬性兼容门限导致同步失败。

看报错信息里明确指出的 AGP 版本不支持提示
遇到 The project is using an incompatible version (AGP 8.3.0-alpha01) of the Android Gradle plugin. Latest supported version is AGP 8.1.3 这类错误,说明你本地 Android Studio 或 Gradle 环境不支持项目声明的 AGP 版本。这不是“选哪个更好”,而是“必须降级到它认的版本”。关键不是盲目选新,是让 AGP 和 Gradle 彼此能握手。
- 先查当前项目用的 AGP 版本:打开
build.gradle.kts(或build.gradle),找plugins { id("com.android.application") version "x.x.x" }或dependencies { classpath "com.android.tools.build:gradle:x.x.x" } - 再确认你本地 AS 推荐范围:Android Studio 欢迎页 → Configure → Project Defaults → Project Structure → 查 “Android Gradle Plugin Version” 推荐区间
- 取两者交集:比如项目要 AGP 8.3.0,但 AS 只推荐到 8.1.3,那就只能选
8.1.3;不能选 8.2.0——它不在推荐范围内,大概率同步失败
匹配 Gradle 分发版本时只看官方兼容表,别凭感觉
AGP 8.1.3 要求 Gradle 在 7.5–8.0 范围内,不是“越新越好”,也不是“和 AGP 小版本一致就行”。用 gradle-8.1-bin.zip 会直接报错 Minimum supported Gradle version is 7.5. Current version is 8.1 —— 因为 8.1 超出上限。
- 改
gradle/wrapper/gradle-wrapper.properties中的distributionUrl,例如设为https\://services.gradle.org/distributions/gradle-8.0-bin.zip - 别用 alpha/beta/rc 版本,除非你明确在测试预发布功能;生产项目一律选
-bin.zip后缀的稳定版 - 改完后必须点击 Android Studio 的 “Sync Now”,不能只改文件就跑构建——否则 Gradle daemon 还在用旧版本缓存
Kotlin 插件版本不能独立升级,得跟着 AGP 和 Kotlin 语言版本走
AGP 8.1.3 明确要求 Kotlin Gradle Plugin (KGP) ≥ 1.9.0,而你的项目若用了 1.8.10,就会触发 The Android Gradle plugin supports only Kotlin Gradle plugin version 1.9.0 and higher。这不是 Kotlin 语言版本(如 kotlin-stdlib-jdk8)的问题,是构建插件本身不兼容。
- 检查
build.gradle.kts中plugins { id("org.jetbrains.kotlin.android") version "x.x.x" }的值 - 若 AGP 是 8.1.3,KGP 至少用
1.9.0;若 AGP 升到 8.4.0,则 KGP 得用1.9.24或更高(参考 JetBrains 官方 release note) - Kotlin 语言版本(
ext.kotlinVersion或kotlinVersion)建议和 KGP 主版本一致,比如 KGP1.9.24对应语言标准库也用1.9.24,避免Unresolved reference类型误报
多模块项目里 buildSrc 是唯一靠谱的版本锁方案
当你在 app、feature-login、core-network 三个模块里分别写 implementation("androidx.core:core-ktx:1.12.0"),某天有人手抖把其中一个改成 1.13.0,编译可能过,但运行时出现 NoSuchMethodError——因为不同版本的 core-ktx 对 ContextCompat 的扩展函数签名变了。
- 用
buildSrc/src/main/kotlin/Versions.kt统一定义:object Versions { const val kotlin = "1.9.24"; const val agp = "8.1.3"; const val gradle = "8.0" } - 各模块
build.gradle.kts中直接引用:implementation("androidx.core:core-ktx:${Versions.coreKtx}") - 这样改一个地方,全项目生效;IDE 支持跳转和重命名,不会漏改;CI 构建时也能强制校验是否所有模块都用了同一套版本


















