Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I migrated to null safety and i cant run "flutter pub run build_runner build" without an error being thrown

I have added // @dart=2.9 to all my files but the build_runner won't do its thing without throwing this error:

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 { 
like image 938
nnamdi Avatar asked Feb 07 '21 15:02

nnamdi


People also ask

What is null safety in Flutter package?

What is null safety in Flutter? Flutter null safety is the feature that became available after the release of version 2 where the minimum version of Dart programming language is set to 2.12. This feature helps to improve developers' productivity by eliminating a whole class of bugs caused by null dereferencing errors.

Which version of Flutter has null safety?

Enabling null safety Sound null safety is available in Dart 2.12 and Flutter 2.


2 Answers

Please make sure all of your packages are updated to their respective null-safety version. For build runner use ^1.12.2 and then run below commands in your terminal while sitting in the present working directory.

flutter clean
flutter pub cache repair
flutter pub run build_runner clean
flutter pub get

After then run the build runner command.

This worked for me and I've successfully generated the files using the build runner.

like image 127
Muhammad Salman Siddiqi Avatar answered Oct 24 '22 06:10

Muhammad Salman Siddiqi


Delete the .pub-cache folder inside your flutter folder and then run pub upgrade, after that you should be able to run:

flutter packages pub run build_runner build --delete-conflicting-outputs
like image 38
martinseal1987 Avatar answered Oct 24 '22 06:10

martinseal1987