首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我迁移到了null safety,运行"flutter pub run build_runner build“时不会抛出一个错误

我迁移到了null safety,运行"flutter pub run build_runner build“时不会抛出一个错误
EN

Stack Overflow用户
提问于 2021-02-07 23:12:21
回答 3查看 2.6K关注 0票数 12

我已经将// @dart=2.9添加到我的所有文件中,但是如果不抛出这个错误,build_runner将无法完成它的工作:

代码语言:javascript
运行
复制
Warning: Operand of null-aware operation '?.' has type 'SendPort' which excludes null. - 'SendPort' is from 'dart:isolate'.  sendPort?.send(result);  ^Error: Cannot run with sound null safety, because the following dependencies don't support null safety: 
- package:build_runner_core 
- package:json_serializable 
- package:moor_generator 
- package:objectbox_generator 
- package:retrofit_generator 
- package:source_gen 
- package:build_config 
- package:build_runner 
- package:build 
- package:json_annotation 
- package:glob 
- package:pool 
- package:crypto 
- package:logging 
- package:watcher 
- package:build_resolvers 
- package:timing 
- package:graphs 
- package:package_config 
- package:yaml 
- package:analyzer 
- package:sqlparser 
- package:objectbox 
- package:dart_style 
- package:built_collection 
- package:code_builder 
- package:dio 
- package:tuple 
- package:retrofit 
- package:pedantic 
- package:checked_yaml 
- package:pubspec_parse 
- package:build_daemon 
- package:args 
- package:io 
- package:convert 
- package:pub_semver 
- package:ffi 
- package:quiver 
- package:moor 
- package:recase 
- package:_fe_analyzer_shared 
- package:built_value 
- package:http_parser 
- package:http_multi_server 
- package:shelf 
- package:stream_transform 
- package:mime 
- package:shelf_web_socket 
- package:web_socket_channel 
- package:cli_util 
- package:fixnum 
- package:synchronizedFor solutions, see https://dart.dev/go/unsound-null-safety.dart_tool/build/entrypoint/build.dart:44:44: Error: The parameter 'sendPort' can't have a value of 'null' because of its type 'SendPort', but the implicit default value is 'null'. - 'SendPort' is from 'dart:isolate'.Try adding either an explicit non-'null' default value or the 'required' modifier.void main(List<String> args, [_i8.SendPort sendPort]) async { 
EN

回答 3

Stack Overflow用户

发布于 2021-04-16 05:26:28

请确保您的所有包都更新到了各自的空安全版本。对于build runner,使用^1.12.2,然后在当前工作目录中在终端中运行下面的命令。

代码语言:javascript
运行
复制
flutter clean
flutter pub cache repair
flutter pub run build_runner clean
flutter pub get

然后运行build runner命令。

这对我很有效,我已经使用构建运行器成功地生成了文件。

票数 2
EN

Stack Overflow用户

发布于 2021-04-16 18:07:37

删除flutter文件夹中的.pub-cache文件夹,然后运行pub upgrade,之后您应该可以运行:

代码语言:javascript
运行
复制
flutter packages pub run build_runner build --delete-conflicting-outputs
票数 1
EN

Stack Overflow用户

发布于 2021-05-17 00:23:26

对于那些正在使用完整的声音零安全的人,即没有使用@dart=2.9或其他方法来忽略零安全的人。

在您的pubspec.yaml文件中,较低版本的SDK应该是>=2.12

代码语言:javascript
运行
复制
environment:
  sdk: '>=2.12.0 <3.0.0'

使用以下版本(所有版本都是空安全的)

代码语言:javascript
运行
复制
json_annotation: ^4.0.1
json_serializable: ^4.1.2
build_runner: ^2.0.3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66089455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档