问题描述
当我使用 Flutter packages pub run build_runner watch
运行 objectBox_generator 时,类是在 JSON 中生成的,但不久之后由于空检查问题,生成失败。我检查了我的代码,但找不到任何空检查问题。有没有办法显示更详细的日志(例如它所在的位置)?
[INFO] Starting Build
[INFO] Updating asset graph...
[INFO] Updating asset graph completed,took 0ms
[INFO] Running build...
[INFO] 1.0s elapsed,14/20 actions completed.
[INFO] 2.1s elapsed,38/54 actions completed.
[INFO] Running build completed,took 2.4s
[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed,took 100ms
// Here the failing info
[SEVERE] objectBox_generator:generator on lib/$lib$ (cached):
Null check operator used on a null value
[SEVERE] Failed after 2.5s
具有附加信息的相同命令 Flutter packages pub run build_runner build --verbose
:
[INFO] Build:Running build...
[INFO] objectBox_generator:generator on lib/$lib$:Package: fit_x
[INFO] objectBox_generator:generator on lib/$lib$:Found 15 entities in: (lib/domain/ob/collection_exercise.objectBox.info,lib/domain/ob/equipment.objectBox.info,lib/domain/ob/equipment_setting.objectBox.info,...,lib/domain/ob/workout_collection.objectBox.info,lib/domain/ob/workout_log.objectBox.info)
[INFO] objectBox_generator:generator on lib/$lib$:Using model: lib/objectBox-model.json
[SEVERE] objectBox_generator:generator on lib/$lib$:
Null check operator used on a null value
package:objectBox_generator/src/code_chunks.dart 444:38 CodeChunks.backlinkRelInfo
package:objectBox_generator/src/code_chunks.dart 488:18 CodeChunks.toManyRelations.<fn>
dart:_internal ListIterable.join
package:objectBox_generator/src/code_chunks.dart 489:12 CodeChunks.toManyRelations
package:objectBox_generator/src/code_chunks.dart 134:46 CodeChunks.entityBinding
package:objectBox_generator/src/code_chunks.dart 32:71 CodeChunks.objectBoxDart.<fn>
package:collection/src/iterable_extensions.dart 173:20 IterableExtension.mapIndexed
dart:core Iterable.join
package:objectBox_generator/src/code_chunks.dart 32:99 CodeChunks.objectBoxDart
package:objectBox_generator/src/code_builder.dart 97:27 CodeBuilder.updateCode
package:objectBox_generator/src/code_builder.dart 57:5 CodeBuilder.build
[INFO] Build:Running build completed,took 349ms
[INFO] Build:Caching finalized dependency graph...
[INFO] Build:Caching finalized dependency graph completed,took 117ms
[SEVERE] Build:
Failed after 476ms
[+3823 ms] "Flutter run" took 3.927ms.
[ +5 ms] pub finished with exit code 1
[ +2 ms]
#0 throwToolExit (package:Flutter_tools/src/base/common.dart:10:3)
#1 _DefaultPub.interactively (package:Flutter_tools/src/dart/pub.dart:366:7)
<asynchronous suspension>
#2 PackagesForwardCommand.runcommand (package:Flutter_tools/src/commands/packages.dart:241:5)
<asynchronous suspension>
#3 FlutterCommand.run.<anonymous closure> (package:Flutter_tools/src/runner/Flutter_command.dart:1043:27)
<asynchronous suspension>
#4 AppContext.run.<anonymous closure> (package:Flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#5 CommandRunner.runcommand (package:args/command_runner.dart:196:13)
<asynchronous suspension>
#6 FlutterCommandRunner.runcommand.<anonymous closure> (package:Flutter_tools/src/runner/Flutter_command_runner.dart:284:9)
<asynchronous suspension>
#7 AppContext.run.<anonymous closure> (package:Flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#8 FlutterCommandRunner.runcommand (package:Flutter_tools/src/runner/Flutter_command_runner.dart:232:5)
<asynchronous suspension>
#9 run.<anonymous closure>.<anonymous closure> (package:Flutter_tools/runner.dart:62:9)
<asynchronous suspension>
#10 AppContext.run.<anonymous closure> (package:Flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11 main (package:Flutter_tools/executable.dart:91:3)
<asynchronous suspension>
[ +74 ms] ensureAnalyticsSent: 67ms
[ +1 ms] Running shutdown hooks
[ ] Shutdown hooks complete
[ ] exiting with code 1
解决方法
从代码看来,您有一个 @Backlink()
到未知实体(未存储在数据库中的实体)...尝试检查这些反向链接(并将它们注释掉以查看是否有效)当你发现哪个触发了这个,考虑在 objectbox-dart 的 GitHub 上用最小的例子打开一个问题。
P。 S. 至于空检查失败 - 是的,需要一个更好的错误(一个告诉你缺少实体的错误) - https://github.com/objectbox/objectbox-dart/commit/00aabe224eaa9bb88ab2bc18a5c31f00b4f3bdc0