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

Flutter_bloc执行flutter pub upgrade后出现MultiProvider构造器报错

解决Flutter_bloc升级后"Superclass has no constructor named 'MultiProvider'"错误

问题原因

这是flutter_bloc 9.1.0和当前环境中provider包版本不兼容导致的:flutter_bloc 9.x系列依赖provider >=6.0.0 <7.0.0,执行flutter pub upgrade后,provider可能被升级到了7.x版本,新版本里MultiProvider的构造逻辑发生变化,导致flutter_bloc的代码调用失效。

解决方法

方法一:锁定provider兼容版本

在项目的pubspec.yaml中明确指定provider为6.x兼容版本:

dependencies:
  flutter:
    sdk: flutter
  flutter_bloc: ^9.1.0
  provider: ^6.0.5  # 锁定到兼容flutter_bloc 9.x的版本

执行命令更新依赖:

flutter pub get

方法二:升级flutter_bloc到适配provider 7.x的版本

直接将flutter_bloc升级到最新稳定版(如10.x系列),新版本已适配provider 7.x的API变化:

dependencies:
  flutter:
    sdk: flutter
  flutter_bloc: ^10.1.0  # 升级到适配provider 7.x的版本

同样执行flutter pub get更新依赖。

方法三:彻底清理缓存后重新获取

如果前两种方法无效,尝试清理pub缓存再重新拉取依赖:

flutter pub cache clean
flutter pub get

报错信息回顾

: Superclass has no constructor named 'MultiProvider'.
  }) 
:
 super(key
:
 key, providers
:
 listeners, child
:
 child);
       ^^^^^
pub-cache/hosted/pub.dev/flutter_bloc-9.1.0/lib/src/multi_bloc_provider.dart:57:8: Error
:
 Superclass has no constructor named 'MultiProvider'.
  }) 
:
 super(key
:
 key, providers
:
 providers, child
:
 child);
       ^^^^^
pub-cache/hosted/pub.dev/flutter_bloc-9.1.0/lib/src/multi_repository_provider.dart:51:8: Error
:
 Superclass has no constructor named 'MultiProvider'.
  }) 
:
 super(key
:
 key, providers
:
 providers, child
:
 child);
       ^^^^^

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:54:58