【问题标题】:How to resolve package conflict in Flutter?如何解决 Flutter 中的包冲突?
【发布时间】:2019-11-14 23:50:29
【问题描述】:

我正在尝试使用外部包来生成 PDF 文档。我用过this library,但是当我导入下面的包时,我得到了错误

名称“StatelessWidget”在“package:flutter/src/widgets/framework.dart”和“package:pdf/widgets.dart”库中定义。

附上错误截图。

导入语句:

import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';

错误:

谁能帮我解决这个问题?

谢谢。

【问题讨论】:

    标签: flutter flutter-dependencies


    【解决方案1】:

    我相信您使用的是专为飞镖制作的软件包。这个包可能包含已经在 Flutter 中定义的函数,导致 dart 有 2 个相同函数的定义。试试this for flutter

    【讨论】:

      【解决方案2】:

      你需要在你的导入中添加 dart: 前缀,它应该像

      import 'dart:pdf';
      

      其他都不需要。

      【讨论】:

      • 我已经导入了import 'package:pdf/pdf.dart';
      • @FredGrott 正如您在this 图像中看到的那样,dart:pdf 确实存在。
      【解决方案3】:

      package:pdf 中定义的类与package:flutter 中定义的类冲突。 Dart 允许您在命名空间下导入包以避免此类冲突。

      将您的第二个导入语句更改为:

      import 'package:pdf/widgets.dart' as pdf;
      

      然后您可以访问包中定义的任何内容,前面带有pdf.

      pdf.SomeWidgetName
      

      【讨论】:

        【解决方案4】:

        在导入的库中隐藏StatelessWidget 怎么样?尝试使用hide 关键字来解决冲突:

        import 'package:pdf/widgets.dart' hide StatelessWidget;
        

        【讨论】:

          猜你喜欢
          • 2020-09-15
          • 1970-01-01
          • 2017-09-11
          • 1970-01-01
          • 2019-10-30
          • 1970-01-01
          • 1970-01-01
          • 2011-05-12
          • 2018-05-15
          相关资源
          最近更新 更多