gpt4 book ai didi

flutter - InterfaceType 不是 VariableGet 中 Class 的子类型

转载 作者:行者123 更新时间:2023-12-03 02:41:02 24 4
gpt4 key购买 nike

升级到 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)
Assignment只是一个 json_serializable 模型。
这是什么 PagingResponse好像:
@JsonSerializable()
class PagingResponse<T> {
PagingResponse(
this.status,
this.message,
this.code,
this.dataJson,
);

String status;
String message;
String code;
@JsonKey(ignore: true)
PagingResponseData<T> data;
@JsonKey(name: 'data')
Map<String, dynamic> dataJson;

factory PagingResponse.fromJson(
Map<String, dynamic> json,
PagingResponseDataDataGeneratorFunction<T> rowsFromJson,
) {
PagingResponse<T> response = _$PagingResponseFromJson<T>(json);

// Our API sometimes returns data directly and at other times nested under
// another object. Check if data directly has a rows field. If not, this
// probably means that data is nested inside an object.
if (response.dataJson?.containsKey('rows') ?? false) {
response.data = new PagingResponseData<T>.fromJson(response.dataJson);
response.data.rows = rowsFromJson(response.data.rowsJson);
} else if (response.dataJson?.isNotEmpty ?? false) {
response.data =
new PagingResponseData<T>.fromJson(response.dataJson.values.first);
response.data.rows = rowsFromJson(response.data.rowsJson);
}

return response;
}

Map<String, dynamic> toJson() => _$PagingResponseToJson(this);
}

typedef List<T> PagingResponseDataDataGeneratorFunction<T>(List<dynamic> json);
这里有各种版本:
[✓] 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
我省略了 doctor 的其余部分输出,因为 Android 和 iOS 版本都会发生这种情况。
在互联网上环顾四周,我找不到任何其他有此问题的解决方案的人。这里有一些:
  • https://github.com/flutter/flutter/issues/48071
  • https://github.com/dart-lang/build/issues/2478
  • https://github.com/flutter/flutter/issues/33013

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

  • 如果有人对这可能与之相关的事情有任何想法,我将不胜感激,因为目前我正在查看代码并进行盲目更改,希望能得到成功。如果一些知识渊博的人偶然发现这个问题,特别是关于这个 Dart 堆栈是什么的一些提示将不胜感激。
    更新:
    最终为此打开了一个问题,我们正朝着那里的解决方案迈进: https://github.com/flutter/flutter/issues/64155

    最佳答案

    我已经更新了 flutter 版 1.20.2 ,而且我也没有遇到任何问题,知道我用的是JsonSerializable同样,试试这个:
    删除这些文件:

    pubspec.lock

    .packages

    .flutter-plugins

    .flutter-plugins-dependencies


    然后申请 flutter pub get命令

    关于flutter - InterfaceType 不是 VariableGet 中 Class 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63417596/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com