Flutter项目pubspec.yaml依赖源错误:一个依赖仅能有一个源的解决方法
修复pubspec.yaml中“A dependency may only have one source”错误
这个错误提示说明某个依赖项被同时指定了多个来源(比如既写了版本号,又添加了sdk: flutter这类来源声明,或者混用了Git地址与版本号)。从你提供的代码来看,当前dev_dependencies里的flutter_test格式是正常的,问题应该出在你添加english_words依赖时的操作失误。
正确的修改方案
将english_words依赖添加到dependencies区块下,保证每个依赖只有单一来源,修改后的完整代码如下:
name: xylophone description: A new Flutter application. version: 1.0.0+1 environment: sdk: ">=2.1.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 english_words: ^4.0.0 # 添加english_words依赖,版本号可根据Flutter版本选择兼容值 # Use Audioplayers dependency version 0.17.4 dev_dependencies: flutter_test: sdk: flutter flutter: uses-material-design: true assets: - assets/
关键注意点
- 区分
dependencies与dev_dependencies:english_words是业务代码需要用到的库,属于生产依赖,必须放在dependencies下;dev_dependencies仅用于开发阶段(如测试工具)。 - 严格遵守YAML缩进规则:每个依赖项的缩进要和同区块内的其他依赖保持一致(通常为2个空格),缩进错误也可能触发异常提示。
- 单一来源原则:每个依赖只能声明一种获取方式——要么写版本号(如
^4.0.0),要么指定sdk来源,要么提供Git地址,不能同时组合多种方式。
内容的提问来源于stack exchange,提问作者helpoatmeal
相关产品推荐
相关产品推荐

