Flutter项目安装shared_preferences报错,求解决方案及token存储替代方案
- 先执行缓存清理和依赖重拉操作:先后运行
flutter clean、flutter pub get,可解决大部分临时缓存导致的安装报错。 - 检查版本兼容性:如果你的项目是Flutter 2.x老版本,不要安装最新版shared_preferences,可指定适配版本例如
shared_preferences: ^2.2.2;同时检查pubspec.yaml中依赖的缩进格式是否正确,依赖项需相对外层dependencies缩进2个空格,版本号前需保留空格。 - 国内环境拉取失败可配置Pub镜像:设置环境变量
PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub/、FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter-storage/后再执行拉取操作。 - 安卓端报错处理:检查android/app/build.gradle中的minSdkVersion参数,最新版shared_preferences要求minSdk≥19,低于该值可将minSdk调整到19及以上,或使用适配低版本SDK的老版shared_preferences。
- iOS端报错处理:进入项目ios目录,执行
pod install --repo-update,如果仍报错可删除Podfile.lock文件后重新执行该命令;同时检查Xcode中项目的Deployment Target需≥11.0。 - 依赖冲突处理:如果是其他依赖和shared_preferences存在版本冲突,可在pubspec.yaml中添加dependency_overrides节点,强制指定冲突依赖的统一版本。
Token全局存储替代方案
get_storage:轻量级键值对存储库,无需额外平台配置,初始化简单,读写性能优于shared_preferences,支持全局直接调用,非常适合存储token这类简单键值数据。flutter_secure_storage:专门用于存储敏感信息的加密存储库,数据会通过系统密钥加密存储,安全性远高于shared_preferences,适配全平台,适合存储token这类敏感凭证。Hive:轻量级NoSQL本地存储库,读写速度快,支持自定义对象序列化,可全局访问,除了存token还可以支持结构化本地数据存储。- 全局单例类:如果仅需要app运行时的全局临时存储,可自行实现全局单例类,将token存在静态变量中,全项目可直接读写,缺点是app重启后数据会清空。
内容的提问来源于stack exchange,提问作者revilo zednem
相关产品推荐
相关产品推荐

