Flutter:如何移除引发版本解析问题的不必要包约束?
解决Flutter非Web项目的Web依赖版本冲突问题
方法1:限定依赖仅使用非Web平台
在pubspec.yaml中给带Web支持的依赖添加platforms配置,只保留你实际用到的平台(比如Android、iOS等),让Pub忽略它们的Web相关依赖约束:
dependencies: device_info_plus: version: ^你的当前版本 platforms: android: ios: macos: # 删掉web相关配置,只保留需要的平台 package_info_plus: version: ^你的目标版本 platforms: android: ios: macos:
方法2:用dependency_overrides强制指定版本
如果方法1无效,直接在pubspec.yaml末尾添加强制覆盖规则,指定冲突包的兼容版本:
dependency_overrides: web: ^0.5.0 # 选择device_info_plus要求范围内的版本 package_info_plus: ^4.0.0 # 替换成你想使用的目标版本
方法3:清理并重新获取依赖
完成配置后执行以下命令,彻底清理旧依赖缓存并重新拉取:
flutter clean flutter pub get
额外确认步骤
- 确保项目根目录下的
web文件夹已完全删除 - 执行
flutter config --no-enable-web,全局禁用Web支持,避免后续误触发Web相关依赖解析
内容的提问来源于stack exchange,提问作者Deukalion
相关产品推荐
相关产品推荐

