添加firebase_storage包遇URI不存在及空安全版本兼容问题求助
解决Flutter中firebase_storage依赖报错与版本冲突问题
问题根源
- 版本解析失败:你使用的
permission_handler: ^5.0.1+1属于非空安全版本(<6.0.0),但firebase_storage: ^11.2.2、firebase_core: ^2.8.0等依赖都是空安全版本,要求Flutter SDK≥2.12.0,两者版本不兼容直接导致flutter pub get执行失败。 - "Target of URI doesn't exist" 错误是连锁反应——依赖解析失败后,包并未成功下载到本地,IDE自然找不到对应的文件路径。
解决步骤
1. 升级permission_handler到空安全版本
将permission_handler替换为≥6.0.0的空安全稳定版,比如当前常用的:
permission_handler: ^10.2.0
(版本号可根据Flutter Pub最新稳定版调整,确保和其他空安全依赖兼容)
2. 清理缓存并重新拉取依赖
执行以下命令彻底更新依赖:
flutter clean flutter pub get
3. 修复pubspec.yaml格式问题
你的配置文件存在两处会影响解析的问题:
better_textfield:和get:未指定版本号,需补充有效版本(比如better_textfield: ^1.0.0),或直接删除未使用的依赖- 确保所有依赖项的缩进与
flutter:保持一致(使用2个空格)
修正后的依赖配置示例:
dependencies: flutter: sdk: flutter better_textfield: ^1.0.0 # 替换为实际可用版本 cupertino_icons: ^1.0.2 firebase_core: ^2.8.0 firebase_auth: ^4.3.0 cloud_firestore: ^4.2.0 image_picker: ^0.8.7+5 permission_handler: ^10.2.0 firebase_storage: ^11.2.2 get: ^4.6.5
4. 重启IDE并刷新分析服务
完成上述操作后,重启你的IDE(Android Studio/VS Code):
- VS Code:按
Ctrl+Shift+P,选择"Flutter: Restart Analysis Server" - Android Studio:点击"File -> Invalidate Caches / Restart"
确保IDE能正确识别新的依赖文件。
验证
重新导入firebase_storage:
import 'package:firebase_storage/firebase_storage.dart';
若未出现报错,说明依赖已成功安装并可正常使用。
内容的提问来源于stack exchange,提问作者Alex Ali
相关产品推荐
相关产品推荐

