添加flutter_audio_recorder: ^0.5.5后Flutter pub get执行失败,求解决方案
解决flutter_audio_recorder与path_provider的版本冲突问题
你碰到的是典型的依赖版本冲突问题,根源很明确:flutter_audio_recorder: ^0.5.5要求依赖file: ^5.0.4,而你当前使用的path_provider: ^2.0.1,其底层依赖的path_provider_linux: ^2.0.0最终会要求file: ^6.0.0——两者的file版本要求完全不重叠,导致pub版本解析失败。
这里有两个可行的解决方案,你可以根据项目需求选择:
方案一:降低path_provider的版本
我们可以把path_provider降级到不会触发高版本file依赖的旧版本,比如^1.6.30(这个版本的path_provider依赖的path_provider_linux不会牵扯到xdg_directories 0.2.0,也就不会触发后续的版本链冲突)。
修改你的pubspec.yaml中dependencies部分:
dependencies: flutter: sdk: flutter # 其他依赖保持不变 path_provider: ^1.6.30 # 替换原来的^2.0.1 flutter_audio_recorder: ^0.5.5
修改完成后重新执行flutter pub get,应该就能正常拉取所有依赖了。
方案二:替换为维护更活跃的音频录制库
flutter_audio_recorder的最新版本停留在2020年,已经很久没有更新,对新的Flutter SDK和生态依赖兼容性较差。更推荐你替换为持续维护的替代库,比如record(如果同时需要播放功能,也可以选择audioplayers):
使用record库的示例步骤:
- 移除
flutter_audio_recorder,添加record到pubspec:
dependencies: flutter: sdk: flutter # 其他依赖保持不变 path_provider: ^2.0.1 # 保留原版本即可 record: ^4.4.1 # 替换flutter_audio_recorder
- 执行
flutter pub get拉取依赖,之后按照库的官方文档调整你的录音业务代码即可。
这个方案的优势是后续不会再遇到类似的兼容性问题,因为活跃维护的库会持续适配最新的Flutter生态。
内容的提问来源于stack exchange,提问作者ygzkrmtc
相关产品推荐
相关产品推荐

