Gradle与AGP升级后Flutter项目构建失败:无法找到kotlin-stdlib-jdk11:2.2.0
看起来你遇到了Kotlin版本依赖冲突+网络访问限制的双重问题,我来帮你一步步拆解解决:
问题核心分析
你在app/build.gradle.kts里指定了Kotlin标准库版本为2.0.20,但构建时Gradle却尝试拉取2.2.0版本——这大概率是因为settings.gradle里配置的Kotlin插件版本(2.2.10)与标准库版本不匹配,Gradle自动尝试对齐版本,但2.2.0这个版本其实并不存在(Kotlin最新稳定版是2.2.10,没有2.2.0);再加上你所在地区的网络限制,导致无法获取依赖触发404。
接下来是具体的解决方案:
1. 对齐Kotlin插件与标准库版本
Kotlin插件和标准库的版本必须保持一致,否则很容易出现依赖冲突。你settings.gradle里用的是2.2.10的Kotlin插件,所以把app/build.gradle.kts里的标准库版本改成2.2.10:
dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk11:2.2.10") // 其他依赖保持不变 }
2. 全局强制指定Kotlin版本约束
为了避免Gradle自动升级依赖版本,你可以在项目根目录的settings.gradle.kts里添加版本约束,确保所有模块都使用统一的Kotlin版本:
pluginManagement { plugins { // 你的现有插件配置... } resolutionStrategy { eachPlugin { if (requested.id.namespace == "org.jetbrains.kotlin") { useVersion("2.2.10") } } } } dependencyResolutionManagement { repositories { // 你的现有仓库配置... } versionCatalogs { create("libs") { version("kotlin", "2.2.10") library("kotlin-stdlib-jdk11", "org.jetbrains.kotlin", "kotlin-stdlib-jdk11").versionRef("kotlin") } } }
这样就能强制所有依赖使用2.2.10版本的Kotlin库,不会再出现自动找2.2.0的情况。
3. 添加国内Maven镜像解决网络问题
由于地区网络限制,官方Maven仓库访问不畅,你可以在settings.gradle.kts的dependencyResolutionManagement里添加国内镜像,比如阿里云镜像:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven("https://maven.aliyun.com/repository/google") maven("https://maven.aliyun.com/repository/public") maven("https://maven.aliyun.com/repository/gradle-plugin") google() mavenCentral() flutter() } }
把阿里云镜像放在官方仓库前面,这样Gradle会优先从镜像仓库拉取依赖,解决404问题。
4. 清理Gradle缓存并重试
有时候本地缓存的错误依赖会导致问题,执行以下命令清理缓存:
# 清理Gradle缓存并重新构建 ./gradlew clean build --refresh-dependencies
如果是Windows系统,用:
gradlew clean build --refresh-dependencies
额外检查点
- 确认你的Android Studio bundled JDK是11以上(你用的是21,没问题),Kotlin 2.2.x对JDK版本的兼容性是OK的。
- 运行
flutter doctor检查Flutter环境配置,你的Flutter 3.35.1和Kotlin 2.2.10是兼容的。
按照这些步骤操作后,应该能解决构建失败的问题。
内容来源于stack exchange




