如何在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)
Image在Flutter Widget库中定义,也在**'package:image/image. dart'中定义。但是我想从Flutter Widget库**引用它,怎么做?
下面是包的镜像:image/image.dart-->用于解码镜像的库。
6条答案
按热度按时间js5cn81o1#
如果您有一个名为import的文件,例如:
那么这个包中的类就是
Image.image
。xqk2d5yq2#
jv2fixgn3#
您可以尝试删除(即不输入)─
消除歧义并保持代码与以前相同-
删除**'package:image/image. dart'**对我来说很好,因为没有歧义,这次'Image'纯粹是由'package:flutter/materials. dart'提供的。
gjmwrych4#
vcudknz35#
解决方案是你可以重构/重命名你自己的文件'package:image/image. dart'
另一个解决方案是你可以使用别名import 'package:image/image.dart'作为img;
在我的例子中,我已经在模型类文件中重命名Image为**Images*,然后问题就解决了。
谢谢
8yparm6h6#
如果两个相同的包之间存在冲突方法/小部件/类。然后,首先导入带有变量*的包,如下所示:-
import 'package:QualityCheckApp/upgrade/screens/home/navigation_drawer.dart' as nav;
然后使用你的method/class/widget和这个变量。
drawer: nav.NavigationDrawer(),