You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中location与image_picker依赖共存时AndroidX版本冲突求助

解决Flutter依赖冲突:androidx.core:core版本不一致问题

我之前也碰到过一模一样的问题,核心原因就是location: ^2.3.5和image_picker: ^0.6.1+10这两个依赖各自拉取了不同版本的androidx.core:core。虽然你已经开启了AndroidX和Jetifier,但Jetifier的职责是迁移旧Support库到AndroidX,不会自动帮我们统一依赖版本。下面是几个通用的修复方案,按推荐程度排序:

方案1:在Android层面强制统一依赖版本(最推荐)

直接在项目的android/build.gradle文件里,给所有模块设置版本强制规则,指定androidx.core:core用运行时的1.0.2版本(或者你也可以选更高的稳定版,比如1.1.0+):

allprojects {
    repositories {
        google()
        jcenter()
    }

    // 新增这段配置,强制统一androidx.core版本
    configurations.all {
        resolutionStrategy {
            force 'androidx.core:core:1.0.2'
        }
    }
}

这样不管哪个依赖声明了什么版本的androidx.core,都会被强制替换成你指定的版本,从根源解决版本冲突。

方案2:升级location依赖到兼容版本

既然单独使用任意一个依赖都没问题,说明新版的location很可能已经适配了更高版本的androidx.core。你可以去pub.dev查一下location的最新稳定版,把依赖升级后,大概率就能和image_picker: ^0.6.1+10兼容了。

修改pubspec.yaml:

dependencies:
  location: ^最新稳定版本号 # 比如可以试试^4.0.0+以上的版本
  image_picker: ^0.6.1+10

方案3:用Flutter的dependency_overrides覆盖版本

Flutter提供了dependency_overrides机制,能直接在pubspec.yaml里强制指定子依赖的版本,不用改Android原生配置:

dependencies:
  location: ^2.3.5
  image_picker: ^0.6.1+10

# 新增这段,强制指定androidx.core的版本
dependency_overrides:
  androidx.core:core: 1.0.2

这个方案和方案1效果类似,只是处理层面不同,选你觉得更顺手的就行。

小提示

如果改完配置还是报错,先执行flutter clean清理缓存,再跑flutter pub get重新拉取依赖,最后重新构建项目,很多时候缓存会导致配置不生效。

内容的提问来源于stack exchange,提问作者Mahmoud Niypoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:23:20