未处理的例外:键入' A'不是类型' A'的子类型。 ' x' A来自哪里

时间:2016-12-12 17:14:59

标签: dart

我收到一个运行时错误,其内容如下:

Unhandled exception:
type 'A' is not a subtype of type 'A' of 'x' where
  A is from file:///path/to/source/a.dart
  A is from package:my_package/a.dart

A 与其他A完全相同的类型 - 没有命名冲突。

两条缩进行(' A来自......')仅在指定路径方面有所不同。一个人经历了包装:'第二个是文件系统上的文件路径。

1 个答案:

答案 0 :(得分:7)

TL; DR:

在任何地方使用import 'package:...',即使从您自己的软件包导入文件也是如此。

说明:

两个网址(file:///...package:...)相同,但Dart无法知道这一点。当您通过相对路径和package:方案导入源时,您将收到此错误。

要解决此问题,请确保在您自己的程序包中导入文件时保持一致。

错:

在文件foo.dart中:

import '../path/to/a.dart';

在文件bar.dart中:

import 'package:my_package/a.dart';

这会导致错误。

正确:

在文件foo.dart中:

import 'package:my_package/a.dart';

在文件bar.dart中:

import 'package:my_package/a.dart';

这没关系。