Flutter依赖冲突解决:shared_preferences与flutter_audio_recorder版本不兼容怎么办
Flutter 依赖版本求解失败修复方案
冲突根因
错误的核心是两个插件依赖的file包版本区间不重叠:
- flutter_audio_recorder 0.5.5 所有版本固定依赖
file ^5.0.4 - shared_preferences 2.0.9 依赖的
shared_preferences_windows ^2.0.0要求file ^6.0.0
两个版本区间没有交集,导致pub的版本求解逻辑无法找到同时满足所有依赖的版本。
可选择的修复方案
- 方案一:依赖覆盖(最快生效,优先选择)
在pubspec.yaml文件中新增与dependencies平级的dependency_overrides节点,强制指定file包的版本为6.x系列:
添加完成后重新执行dependency_overrides: file: ^6.1.4flutter pub get即可解决冲突,该方案不会修改现有两个依赖的版本,绝大多数场景下不会触发功能异常。 - 方案二:替换未维护的音频录制插件
flutter_audio_recorder已停止维护超过3年,无空安全更新,也不支持新的Flutter版本。可替换为目前维护活跃的record插件,该插件天然兼容高版本shared_preferences,替换旧依赖后重新拉包即可。 - 方案三:降低shared_preferences版本
若不想修改音频相关依赖,可将pubspec.yaml中的shared_preferences版本降级为^2.0.8,该版本依赖的shared_preferences_windows版本更低,兼容file 5.x版本,调整后重新执行flutter pub get即可。
内容的提问来源于stack exchange,提问作者jiji
相关产品推荐
相关产品推荐

