Flutter项目GitHub流水线DioError废弃报错修复咨询
搞定DioError废弃报错的方法
1. 先搞清楚问题根源
你的项目用了retrofit: 4.0.1,它依赖dio库。流水线环境拉取的dio版本应该是5.x以上(dio从5.0.0开始把DioError废弃,换成了DioException),但本地的dio版本偏低,所以本地没DioException的定义,也不会触发报错,可流水线那边就出现了废弃警告。
2. 升级dio并替换旧API
- 先在
pubspec.yaml里明确指定dio的5.x+版本,比如:dependencies: # 其他依赖不动,新增或更新现有dio版本 dio: ^5.3.2 - 执行
flutter pub get更新依赖,这时候本地就能引入DioException了。 - 全项目把所有
DioError替换成DioException:
比如原来的错误捕获代码:
修改为:try { // 请求逻辑 } on DioError catch (e) { // 错误处理 }try { // 请求逻辑 } on DioException catch (e) { // 错误处理 } - 顺带检查属性调用,比如
DioError.response换成DioException.response,DioError.error换成DioException.error,别漏了相关属性的适配。
3. 适配retrofit生成的代码
你用的retrofit_generator:7.0.1得兼容dio 5.x,要是生成代码时报错,就把retrofit和生成器都升级到兼容版本:
dependencies: retrofit: ^4.1.0 # 升级到支持dio 5.x的版本 dev_dependencies: retrofit_generator: ^7.1.0 # 对应升级生成器
然后重新执行flutter pub run build_runner build生成新的retrofit代码,避免生成代码里还留着DioError的引用。
4. 验证修复
- 本地运行项目,确保没有编译错误。
- 触发GitHub流水线,确认那个废弃警告消失。
内容的提问来源于stack exchange,提问作者Evgen
相关产品推荐
相关产品推荐

