【问题标题】:error: The name 'Image' is defined in the libraries 'package:flutter/src/widgets/image.dart' and 'package:image/src/image.dart'. -- ambiguous_import错误:名称“Image”在库“package:flutter/src/widgets/image.dart”和“package:image/src/image.dart”中定义。 -- ambiguous_import
【发布时间】:2019-04-30 01:26:02
【问题描述】:

如何解决 Dart 中的这种歧义错误。

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:image/image.dart';

return MaterialApp(
  title: 'Camera',
  home: Scaffold(
    body: new Container(
      child: _image == null ? Text('No Image to display') : Image.file(_image),
    ),
    floatingActionButton: new FloatingActionButton(onPressed:() {
      picker();
    },
    tooltip: 'Pick image',
    child: new Icon(Icons.camera)),
  ),
);

错误:

名称“Image”在库“package:flutter/src/widgets/image.dart”和“package:image/src/image.dart”中定义。 (ambiguous_import at [camera] lib\packs\reg.certificate.dart:45)​​

ImageFlutter Widget 库 中定义,也在 'package:image/image.dart' 中定义。但是我想从 Flutter Widget library 中引用它怎么做?

这是 package:image/image.dart--> 用于解码图像的库的图像

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    如果您有一个名为 import 的文件,例如:

    Import ‘package:image/image.dart’ as Image;
    

    那么该包中的类将是Image.image

    【讨论】:

    • 谢谢你,这有帮助。您知道如何将表单 Widget-Image(来自 material.dart)转换为 Image-Image(来自 Image.dart) - 反之亦然??
    • import 'package:image/image.dart' as img;
    【解决方案2】:

    将'package:image/image.dart'导入为img;

    【讨论】:

      【解决方案3】:

      您可以尝试删除(即不导入)-

      Import ‘package:image/image.dart’ 
      

      消除歧义并保持代码与以前相同 -

      Image.file(_image),
      

      删除 'package:image/image.dart' 对我来说效果很好,因为没有歧义,而这次 'Image' 完全由 'package:flutter/material.dart' 提供。

      【讨论】:

        【解决方案4】:
        import 'package:image/image.dart' as brendanImage;
        
        var image = await receivePort.first as brendanImage.Image;
        var resized = brendanImage.copyResize(image, width: ..);
        

        【讨论】:

          【解决方案5】:
          • 它用于重复调用,在您自己的类中的文件 'package:image/image.dart' 中定义了一次 Image 并在颤振内置包 'package:flutter/src/widgets /image.dart' 还定义了 Image

          • 在同一方向导入两个文件后,您会收到错误。

            解决方案是您可以在自己的文件 'package:image/image.dart' 中重构/重命名“图像”

            另一种解决方案是您可以使用别名,例如 import 'package:image/image.dart' as img;

            在我的例子中,我在模型类文件中将 Image 重命名为 Images,然后问题就解决了。

          谢谢

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-02-05
            • 2020-03-01
            • 2019-12-09
            • 2021-04-12
            • 2022-06-27
            • 2021-07-26
            • 2021-02-05
            • 1970-01-01
            相关资源
            最近更新 更多