由于某种原因不能使用flutter_bloc

Posted

技术标签:

【中文标题】由于某种原因不能使用flutter_bloc【英文标题】:Cant use flutter_bloc for some reason 【发布时间】:2021-08-05 01:16:41 【问题描述】:

所以我运行的是 android Studio 4.2.1。

我可以创建一个“新 Flutter 项目”并运行它。

顺便说一句,我已经构建了一些学习应用程序。

但由于某种原因,如果我“import 'package:flutter_bloc/flutter_bloc.dart';”,它就会窒息。

这是控制台输出:

在调试模式下在 I3312 上启动 lib/main.dart... 正在运行 Gradle 任务“assembleDebug”... ../../development/flutter/.pub-cache/hosted/pub.dartlang.org/bloc-7.0.0/lib/src/bloc.dart:96:28: 错误:无法将参数类型“事件”分配给参数类型“对象”,因为 'Event' 可以为空,'Object' 不是。

“对象”来自“飞镖:核心”。 观察者.onEvent(这个,事件); ^

FAILURE:构建失败并出现异常。

这是“来自 bloc.dart 的违规代码:

  /// A great spot to add logging/analytics at the individual [Bloc] level.
  ///
  /// **Note: `super.onEvent` should always be called first.**
  /// ```dart
  /// @override
  /// void onEvent(Event event) 
  ///   // Always call super.onEvent with the current event
  ///   super.onEvent(event);
  ///
  ///   // Custom onEvent logic goes here
  /// 
  /// ```
  ///
  /// See also:
  ///
  /// * [BlocObserver.onEvent] for observing events globally.
  ///
  @protected
  @mustCallSuper
  void onEvent(Event event) 
    // ignore: invalid_use_of_protected_member
    observer.onEvent(this, event);
  

我下载的任何使用 flutter_bloc 的项目都有一些错误。

我感觉这与“零安全”有关,但我不知道。

干杯

编辑;添加了 pubspec.yaml

name: simple_bloc
description: A new Flutter project.

publish_to: 'none' # Remove this line if you wish to publish to pub.dev


version: 1.0.0+1

environment:
#  sdk:  ">=2.7.0 <=2.10.0"
  sdk: ">=2.7.0 <=3.0.0"

dependencies:
  flutter:
    sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for ios style icons.
  cupertino_icons: ^1.0.2
  flutter_bloc: ^7.0.0


dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

【问题讨论】:

在我看来,您使用的是带有 dart 2.12 的旧 flutter_bloc 版本(又名空安全)。你能发布你的 pubspec.yaml 添加到原帖中。 - 谢谢 顺便说一句...我刚刚在我的 Windows PC 上安装了 Android Studio,它在那里工作。所以,显然我对 Mac 上的环境做了一些事情。 【参考方案1】:

尝试重新安装 Android Studio,但没有成功。

终于尝试“完全”删除我 Mac 上的 AndroidStudio 和任何其他 Android、com.google 文件夹...

重新安装了 Android Studio、Flutter SDK 和 Android SDK。

这行得通,但它是一个 PITA!

【讨论】:

以上是关于由于某种原因不能使用flutter_bloc的主要内容,如果未能解决你的问题,请参考以下文章

由于某种原因,不会出现角度对话框窗口

为啥回滚方法不能用于 DBI 句柄?

由于某种原因无法使用套接字接收信息

由于某种原因无法使用更改方法的无线电输入

尝试使用 flexbox 创建 16x16 网格,但由于某种原因 width: 100% 不起作用

由于某种原因,托管对象上下文在 iOS 中为零