Flutter Undraw Widget - 更新后的PictureStream错误

Posted

技术标签:

【中文标题】Flutter Undraw Widget - 更新后的PictureStream错误【英文标题】:Flutter Undraw Widget - PictureStream Error after update 【发布时间】:2020-08-23 14:00:41 【问题描述】:

我在 Undraw 小部件中更新到 Flutter 1.17 后遇到错误。它以前工作正常。

代码 -

Container(
          height: height * 0.3,
          width: width,
          child: UnDraw(
              width: width,
              color: accentColor,
              illustration: UnDrawIllustration.medicine,
              placeholder: CircularProgressIndicator(),
              errorWidget:
                  Icon(Icons.error_outline, color: Colors.red, size: 50),
            ),
       ),

依赖 - 取消绘制:^1.0.2

我遇到的错误 -

abstract class PictureStreamCompleter extends Diagnosticable 

           ^

编译器消息:

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.13.1/lib/src/picture_stream.dart:92:3: Error: The superclass, 'Diagnosticable', has no unnamed constructor that takes no arguments.
  PictureStream();
  ^^^^^^^^^^^^^
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.13.1/lib/src/picture_stream.dart:192:16: Error: The superclass, 'Diagnosticable', has no unnamed constructor that takes no arguments.
abstract class PictureStreamCompleter extends Diagnosticable 
           ^

目标 kernel_snapshot 失败:异常:创建快照时出错:null 构建失败。

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

在哪里: 脚本 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' 行:882

出了什么问题: 任务 ':app:compileFlutterBuildDebug' 执行失败。

Process 'command 'C:\src\flutter\bin\flutter.bat'' 以非零退出值 1 结束

尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

通过https://help.gradle.org获得更多帮助

这是颤振医生的结果-

Doctor summary (to see all details, run flutter doctor -v):

* [√] Flutter (Channel stable, v1.17.0, on Microsoft Windows [Version 10.0.18363.778], locale en-US)

[√] android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2) [√]Android Studio(3.5版) [√] VS 代码(版本 1.44.2) [√] 已连接设备(1 个可用)

• 未发现任何问题!

【问题讨论】:

【参考方案1】:

将 undraw 降级为 ^1.0.1 而不是 ^1.0.2 并且您可以添加 flutter_svg: ^0.17.4,如果您已将 Flutter 升级到 Flutter(Channel stable, v1.17.1, on Mac OS X 10.14.6 18G2022,语言环境 en-ZA)。希望对您有所帮助

【讨论】:

【参考方案2】:

尝试从 undraw 包中访问 pubspec.yaml 并更新依赖:

flutter_svg: ^0.17.4

http: ^0.12.0+4

如果在此之后您仍然遇到一些错误,请尝试从您的应用程序中强制使用相同版本的 flutter_svg 依赖于 pubspec.yaml

flutter_svg: ^0.17.4

希望对你有帮助!

【讨论】:

以上是关于Flutter Undraw Widget - 更新后的PictureStream错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 的 Canvas 上绘制 Widget?

Flutter widget 注意事项

如何使按钮更靠近 Flutter

flutter widget:Row

Flutter Container Widget 和 Text Widget

Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]