使用--include-package构建Flet APK失败的依赖兼容问题
解决Flet 0.25.2构建APK时requests包的依赖冲突问题
问题描述
执行命令flet build apk --include-package requests构建APK时,Flutter编译器抛出依赖冲突错误:
Flet 0.25.2依赖
http ^1.2.2,而requests >=4.1.0依赖http ^0.13.4,二者版本冲突;同时requests <4.1.0不支持null安全,与要求SDK下限≥2.12.0的Flet 0.25.2完全不兼容,导致版本解析失败。
环境信息
- Flet版本:0.25.2
- Flutter版本:3.24.5
- Dart版本:3.5.4
已尝试操作
- 降级Flutter和Dart版本
- 降级Flet版本
- 升级Flutter依赖包
可行解决方案
1. 替换为Dart原生HTTP库
Flet基于Flutter开发,优先使用Dart生态的http包替代Python的requests,从根源避免跨语言依赖冲突:
- 在项目代码中导入Dart http库:
import 'package:http/http.dart' as http; - 示例HTTP请求代码:
final response = await http.get(Uri.parse('https://your-api-url.com')); if (response.statusCode == 200) { // 处理响应内容 print(response.body); }
2. 强制统一依赖版本(风险操作)
若必须使用Python的requests,可通过dependency_overrides强制对齐http版本,但需承担潜在兼容性风险:
- 打开Flutter项目的
pubspec.yaml,添加以下配置:dependency_overrides: http: ^1.2.2 - 执行
flutter pub get更新依赖,再重新执行构建命令:flet build apk --include-package requests
注意:此操作可能导致requests包出现运行时异常,需完成充分测试后再发布。
3. 升级Flet至最新稳定版
检查Flet后续版本是否已修复该依赖冲突问题,升级到最新版尝试:
- 执行命令升级Flet:
pip install flet --upgrade - 重新运行构建命令验证是否解决问题
内容的提问来源于stack exchange,提问作者Stephan
相关产品推荐
相关产品推荐

