InterfaceType 不是 VariableGet 中 Class 的子类型

xip*_*xip 5 types build dart flutter

升级到 Flutter 1.20.1 后尝试构建我的应用程序时出现以下错误。

Unhandled exception:
Crash when compiling null,
at character offset null:
InterfaceType(PagingResponse<Assignment*>*) is not a subtype of Class(Response) in VariableGet(response{PagingResponse<Assignment*>*})
#0      TypeEnvironment.typeError  (package:kernel/type_environment.dart:164:7)
#1      Expression.getStaticTypeAsInstanceOf  (package:kernel/ast.dart:3037:10)
#2      PropertyGet.getStaticType  (package:kernel/ast.dart:3200:20)
#3      transformAsExpression  (package:kernel/transformations/type_casts_optimizer.dart:22:45)
#4      _Lowering.visitAsExpression  (package:vm/transformations/lowering.dart:65:12)
#5      AsExpression.accept  (package:kernel/ast.dart:4913:44)
#6      VariableSet.transformChildren  (package:kernel/ast.dart:3154:21)
#7      Transformer.defaultTreeNode  (package:kernel/visitor.dart:653:10)
#8      TreeVisitor.defaultExpression  (package:kernel/visitor.dart:144:43)
#9      TreeVisitor.visitVariableSet  (package:kernel/visitor.dart:148:43)
#10     VariableSet.accept  (package:kernel/ast.dart:3144:44)
#11     ExpressionStatement.transformChildren  (package:kernel/ast.dart:5794:31)

// bunch of stack that doesn't look important

#133    KernelTarget.buildComponent  (package:front_end/src/fasta/kernel/kernel_target.dart:355:12)
#134    IncrementalCompiler.computeDelta.<anonymous closure>  (package:front_end/src/fasta/incremental_compiler.dart:274:28)
<asynchronous suspension>
#135    IncrementalCompiler.computeDelta.<anonymous closure> (package:front_end/src/fasta/incremental_compiler.dart)
#136    CompilerContext.runInContext.<anonymous closure>.<anonymous closure>  (package:front_end/src/fasta/compiler_context.dart:123:46)
#137    new Future.sync  (dart:async/future.dart:223:31)
#138    CompilerContext.runInContext.<anonymous closure>  (package:front_end/src/fasta/compiler_context.dart:123:19)
#139    _rootRun  (dart:async/zone.dart:1190:13)
#140    _CustomZone.run  (dart:async/zone.dart:1093:19)
#141    _runZoned  (dart:async/zone.dart:1630:10)
#142    runZoned  (dart:async/zone.dart:1550:10)
Run Code Online (Sandbox Code Playgroud)

Assignment 只是一个 json_serializable 模型。

这是PagingResponse看起来的样子:

Unhandled exception:
Crash when compiling null,
at character offset null:
InterfaceType(PagingResponse<Assignment*>*) is not a subtype of Class(Response) in VariableGet(response{PagingResponse<Assignment*>*})
#0      TypeEnvironment.typeError  (package:kernel/type_environment.dart:164:7)
#1      Expression.getStaticTypeAsInstanceOf  (package:kernel/ast.dart:3037:10)
#2      PropertyGet.getStaticType  (package:kernel/ast.dart:3200:20)
#3      transformAsExpression  (package:kernel/transformations/type_casts_optimizer.dart:22:45)
#4      _Lowering.visitAsExpression  (package:vm/transformations/lowering.dart:65:12)
#5      AsExpression.accept  (package:kernel/ast.dart:4913:44)
#6      VariableSet.transformChildren  (package:kernel/ast.dart:3154:21)
#7      Transformer.defaultTreeNode  (package:kernel/visitor.dart:653:10)
#8      TreeVisitor.defaultExpression  (package:kernel/visitor.dart:144:43)
#9      TreeVisitor.visitVariableSet  (package:kernel/visitor.dart:148:43)
#10     VariableSet.accept  (package:kernel/ast.dart:3144:44)
#11     ExpressionStatement.transformChildren  (package:kernel/ast.dart:5794:31)

// bunch of stack that doesn't look important

#133    KernelTarget.buildComponent  (package:front_end/src/fasta/kernel/kernel_target.dart:355:12)
#134    IncrementalCompiler.computeDelta.<anonymous closure>  (package:front_end/src/fasta/incremental_compiler.dart:274:28)
<asynchronous suspension>
#135    IncrementalCompiler.computeDelta.<anonymous closure> (package:front_end/src/fasta/incremental_compiler.dart)
#136    CompilerContext.runInContext.<anonymous closure>.<anonymous closure>  (package:front_end/src/fasta/compiler_context.dart:123:46)
#137    new Future.sync  (dart:async/future.dart:223:31)
#138    CompilerContext.runInContext.<anonymous closure>  (package:front_end/src/fasta/compiler_context.dart:123:19)
#139    _rootRun  (dart:async/zone.dart:1190:13)
#140    _CustomZone.run  (dart:async/zone.dart:1093:19)
#141    _runZoned  (dart:async/zone.dart:1630:10)
#142    runZoned  (dart:async/zone.dart:1550:10)
Run Code Online (Sandbox Code Playgroud)

这里有各种版本:

[?] Flutter (Channel stable, 1.20.1, on Mac OS X 10.15.4 19E287, locale en-US)
    • Flutter version 1.20.1 at /Users/------/dev/tools/flutter
    • Framework revision 2ae34518b8 (9 days ago), 2020-08-05 19:53:19 -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0
Run Code Online (Sandbox Code Playgroud)

我省略了其余的doctor输出,因为 Android 和 iOS 版本都会发生这种情况。

在互联网上环顾四周,我找不到任何其他有此问题的解决方案的人。这里有一些:

我试过:

  • 删除每次使用PagingResponse<Assignment>和运行构建 - 使用不同的模型类得到相同的错误消息;
  • flutter clean
  • 删除 ~/.pub-cache
  • 其他各种我现在不记得了

如果有人对这可能什么有任何联系,我将不胜感激,因为目前我正在查看代码并进行盲目更改,希望能获得成功。如果一些知识渊博的人偶然发现这个问题,特别是关于这个 Dart 堆栈是什么的一些提示将不胜感激。

更新: 最终为此打开了一个问题,我们正朝着那里的解决方案迈进:https : //github.com/flutter/flutter/issues/64155

far*_*ama 5

我已经把flutter版本更新到1.20.2了,没有遇到什么问题,知道我JsonSerializable也在用,试试这个:

删除这些文件:

pubspec.lock

.packages

.flutter插件

.flutter-plugins-dependencies

然后应用flutter pub get命令