You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

flutter_session 0.1.1依赖冲突致pub get失败,请求技术帮助

解决flutter_session 0.1.1与file_picker 5.2.2的依赖冲突问题

问题本质

这是典型的依赖链版本冲突:

  • flutter_session 0.1.1依赖shared_preferences ^0.5.8,最终要求plugin_platform_interface ^1.0.1
  • file_picker 5.2.2依赖plugin_platform_interface ^2.1.2
    两者对plugin_platform_interface的版本要求完全不兼容,导致pub get解析失败。

解决方案

方案1:替换flutter_session为官方维护的包

flutter_session本质是基于shared_preferences做的简单封装,直接用shared_preferences可实现相同的session存储功能,且无版本兼容问题:

  1. 在pubspec.yaml中移除flutter_session: ^0.1.1,添加:
shared_preferences: ^2.2.2
  1. 替换原flutter_session的代码:
    原调用:
import 'package:flutter_session/flutter_session.dart';

// 存储数据
await FlutterSession().set('user_token', 'xxx');
// 获取数据
var token = await FlutterSession().get('user_token');

替换为shared_preferences实现:

import 'package:shared_preferences/shared_preferences.dart';

// 存储数据
final prefs = await SharedPreferences.getInstance();
await prefs.setString('user_token', 'xxx');
// 获取数据
var token = prefs.getString('user_token');

方案2:降低file_picker版本到兼容旧版plugin_platform_interface的版本

选择file_picker中依赖plugin_platform_interface ^1.0.1的版本,比如file_picker: ^3.0.4,修改pubspec.yaml:

file_picker: ^3.0.4

该版本功能完整,可与flutter_session 0.1.1正常兼容。

方案3:使用dependency_overrides强制统一版本(不推荐)

若必须保留两个包的当前版本,可尝试强制指定plugin_platform_interface版本,但可能导致file_picker运行时出错(新版本file_picker依赖了2.x版本的接口):
在pubspec.yaml末尾添加:

dependency_overrides:
  plugin_platform_interface: ^1.0.1

执行flutter pub get后需全面测试file_picker功能,确认无异常。

内容的提问来源于stack exchange,提问作者Lim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:35:44