如何解决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->库的图像。
答案 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'提供。