错误:名称“图像”在库“ package:flutter / src / widgets / image.dart”和“ package:image / src / image.dart”中定义。 -ambiguous_import

时间:2018-11-28 07:35:35

标签: dart flutter

如何解决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”中定义。 (位于[camera] lib \ packs \ reg.certificate.dart:45处的ambiguous_import)

图片 Flutter Widget库中以及'package:image / image.dart'中定义。但是我想从 Flutter Widget库中引用它怎么做?

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

**package:image/image.dart**

5 个答案:

答案 0 :(得分:9)

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

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

然后该软件包中的类将为Image.image

答案 1 :(得分:2)

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

答案 2 :(得分:0)

import 'package:image/image.dart' as brendanImage;

var image = await receivePort.first as brendanImage.Image;
var resized = brendanImage.copyResize(image, width: ..);

答案 3 :(得分:0)

  • 它用于重复调用,在您自己的类的文件“ package:image / image.dart”中,您一次定义了 Image ,然后在内置的内置软件包“ package:flutter / src / widgets / image.dart”也定义了 Image

  • 以相同方向导入两个文件后,您会收到错误消息。

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

    另一种解决方案是您可以使用别名“ import'package:image / image.dart”作为img;

    就我而言,我已在模型类文件中将 Image 重命名为 Images ,然后问题得以解决。

谢谢

答案 4 :(得分:0)

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

Import ‘package:image/image.dart’ 

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

Image.file(_image),

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