渡槽 db 生成错误: 错误状态: 否这样方法错误: 在空值上调用了 getter 'length'



在系统上: Dart VM 版本:2.9.0-14.0.dev.flutter-2b917f5b6a (be((2020 年 6 月 10 日星期三 15:46:47 +0000( 在"windows_x64"上

运行"aqueduct db generate"以创建00000001_initial.migration.dart 时可以 但是,在编辑模型并重新运行"渡槽数据库生成"后,我收到如下消息。 删除 00000001_initial.migration.dart 并重新运行后,就可以了。

消息:

-- 渡槽 CLI 版本:3.3.0+1 -- 渡槽项目版本:3.2.0 未捕获的错误 错误状态:NoSuchMethodError:在 null 上调用了 getter 'length'。 接收器:空 尝试呼叫:长度 堆栈跟踪

  • #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5(
  • #1 _ClassMirror.newInstance (dart:mirrors-patch/mirrors_impl.dart:653:44(
  • #2 Executable.instanceOf (data:application/dart:14:813(
  • #3 SchemaBuilderExecutable.execute (data:application/dart:13:873(
  • #4 主要(数据:应用程序/飞镖:9:35(
  • #5 _startIsolate。(dart:isolate-patch/isolate_patch.dart:297:32(
  • #6 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12(

请帮帮我!

这是一个错误,它仍然存在。当存在以前的迁移文件时发生。

只需擦除migrations/00000001_initial.migration.dart,然后aqueduct db generate将按预期工作。

在渡槽 4.0.0-b1 上测试

附言我知道这是问题中给出的相同解决方案,但我遇到了同样的问题,起初解决方案并不清楚。

他们实际上修复了它

只是还没有 pub.dev。

您可以尝试降级Dart版本。

brew tap dart-lang/dart
brew uninstall dart
brew install dart@2.8

它帮助了我。

更新:

这是我pubspec.yaml文件的内容:

name: mysecurename
description: mysecuredescription
version: 0.1.0
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
aqueduct: ^4.0.0-b1
analyzer: '>=0.32.0 <0.41.0'
runtime: ^1.0.0-5
http: ^0.12.0+4
mime: ^0.9.6+3
dev_dependencies:
test: ^1.0.0
aqueduct_test: ^2.0.0-b1

使用 isolate_executor包(适用于渡槽 3.2.0,Windows 10 上的 dart 2.10.0(,我只是为lib\src isolate_executor\.dart 中可执行类的"实例"函数定义的命名参数添加了默认值"const {}",如下所示: (起源(

U instanceOf<U> (String typeName, {List positionalArguments: const [], Map <Symbol, dynamic> namedArguments, Symbol constructorName}) {...}

(修改(:

U instanceOf<U> (String typeName, {List positionalArguments: const [], Map <Symbol, dynamic> namedArguments: const {}, Symbol constructorName}) {...}

它工作正常,包括飞镖 2.10.0。 我不知道为什么,因为在 dart 的函数定义中已经有这个默认值声明。

InstanceMirror newInstance (
Symbol constructorName, List <dynamic> positionalArguments,
[Map <Symbol, dynamic> namedArguments = const <Symbol, dynamic> {}]);

如果我错了,请检查并纠正我。

最新更新