Flutter Android项目中open_file_safe依赖引发Gradle构建失败(版本不匹配+依赖解析错误)
Flutter Android项目中open_file_safe依赖引发Gradle构建失败(版本不匹配+依赖解析错误)
遇到这种依赖版本不兼容导致的Gradle构建报错真的很闹心,我之前也碰到过类似的插件依赖旧版本引发的冲突问题,给你整理了几个针对性的解决步骤:
一、先排查open_file_safe的版本是否过时
首先检查你pubspec.yaml里的open_file_safe依赖版本,这个包如果太久没更新,内部会绑定旧版的Gradle和Kotlin依赖,和你项目里的新版本(Gradle 8.7、Kotlin 1.9.10)完全不兼容。
- 把
open_file_safe升级到pub上的最新稳定版,比如改成:dependencies: open_file_safe: ^最新版本号 - 执行
flutter pub get更新依赖
二、强制统一所有子项目的Kotlin版本
你的项目已经用了Kotlin 1.9.10,但open_file_safe还在试图拉取1.3.72版本,我们可以通过Gradle的依赖解析策略强制所有子项目使用统一的Kotlin版本:
打开android/build.gradle,在subprojects块里添加依赖强制规则:
subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" // 新增以下配置 configurations.all { resolutionStrategy { // 强制所有模块使用你项目指定的Kotlin版本 force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10" force "org.jetbrains.kotlin:kotlin-stdlib:1.9.10" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10" // 顺便解决jimfs依赖解析问题,强制用兼容版本 force "com.google.jimfs:jimfs:1.2" } } }
三、对齐Gradle和Android Gradle Plugin(AGP)版本
你现在的配置里有点矛盾:settings.gradle里指定了AGP版本是8.5.0,但android/build.gradle里的classpath还是7.4.2,这会导致版本不匹配,改成一致的版本:
修改android/build.gradle里的buildscript依赖:
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.5.0' // 和settings里的版本对齐 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10" } }
四、清理缓存彻底重置构建状态
旧的缓存经常会导致依赖解析异常,执行以下步骤清理:
- 清理Flutter项目缓存:
flutter clean - 进入android目录,清理Gradle缓存:
# Mac/Linux ./gradlew cleanBuildCache # Windows gradlew.bat cleanBuildCache - 重新构建项目:
flutter run
补充:如果以上方法还不行
可以尝试在allprojects的repositories里添加jcenter(虽然jcenter已经停止更新,但部分旧依赖只能在这里找到):
allprojects { repositories { google() mavenCentral() maven { url "https://jitpack.io" } jcenter() // 临时添加,解决旧依赖找不到的问题 } }
内容来源于stack exchange
相关产品推荐
相关产品推荐

