由于某种原因不能使用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的主要内容,如果未能解决你的问题,请参考以下文章