错误:名称'Image'定义在库'包:flutter/src/widgets/image.dart'和'包:image/src/image. dart'中,--歧义导入

zlwx9yxi  于 2023-06-24  发布在  Flutter
关注(0)|答案(6)|浏览(236)

如何在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库**引用它,怎么做?

下面是包的镜像:image/image.dart-->用于解码镜像的库

js5cn81o

js5cn81o1#

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

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

那么这个包中的类就是Image.image

xqk2d5yq

xqk2d5yq2#

import 'package:image/image.dart' as img;
jv2fixgn

jv2fixgn3#

您可以尝试删除(即不输入)─

Import ‘package:image/image.dart’

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

Image.file(_image),

删除**'package:image/image. dart'**对我来说很好,因为没有歧义,这次'Image'纯粹是由'package:flutter/materials. dart'提供的。

gjmwrych

gjmwrych4#

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

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

vcudknz35#

  • 它是用于重复调用的,在你自己的类文件'package:image/image.dart'中定义了Image,在flutter内置包'package:flutter/src/widgets/image.dart'中也定义了Image
  • 在同一方向导入两个文件后,您会得到错误。
    解决方案是你可以重构/重命名你自己的文件'package:image/image. dart'
    另一个解决方案是你可以使用别名import 'package:image/image.dart'作为img;

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

8yparm6h

8yparm6h6#

如果两个相同的包之间存在冲突方法/小部件/类。然后,首先导入带有变量*的包,如下所示:-
import 'package:QualityCheckApp/upgrade/screens/home/navigation_drawer.dart' as nav;

然后使用你的method/class/widget和这个变量。

drawer: nav.NavigationDrawer(),

相关问题