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

Flutter安装qr_flutter遇依赖冲突及自依赖报错的解决咨询

解决Flutter中qr_flutter依赖冲突问题

问题根源

你的Flutter项目名称为qr,与第三方依赖包qr(qr_flutter的依赖)重名,导致依赖解析出现冲突:

  1. 首次执行flutter pub get时,pub将你的项目本身识别为qr包,但qr_flutter需要的是版本≥3.0.1的第三方qr包,而你的项目版本是1.0.0+1,版本不匹配导致解析失败。
  2. 手动添加qr: ^3.1.0时,pub禁止将项目自身列为依赖,因此抛出"A package may not list itself as a dependency"错误。

解决方案

方案一:修改项目名称(推荐)

这是最彻底且无风险的解决方式:

  • 修改项目文件夹名称为不冲突的名称(比如qr_generator_demo)。
  • 打开pubspec.yaml,将顶部的name: qr改为新的项目名称,示例配置:
    name: qr_generator_demo
    environment:
      sdk: '>=3.0.6 <4.0.0'
    dependencies:
      flutter:
        sdk: flutter
      cupertino_icons: ^1.0.2
      qr_flutter: ^4.1.0
    
  • 删除项目根目录下的pubspec.lock文件和.dart_tool文件夹。
  • 重新执行flutter pub get,此时qr_flutter会自动拉取所需的第三方qr依赖包,不会再与项目名冲突。

方案二:使用依赖覆盖(备选,不推荐)

如果暂时无法修改项目名称,可以通过dependency_overrides强制指定第三方qr包的版本,但可能存在命名冲突风险:
在pubspec.yaml末尾添加:

dependency_overrides:
  qr: ^3.1.0

添加后执行flutter pub get即可完成依赖安装,但后续开发中若涉及项目内命名与qr包冲突,需自行处理。

内容的提问来源于stack exchange,提问作者开发杜

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:51:09