Flutter:我在运行时遇到了这个问题:flutter pub run builder_runner watch

Oma*_* Fd 8 dart flutter

这是错误:

Bad state: Unexpected diagnostics:
C:\flutter\bin\cache\dart-sdk\lib\internal\internal.dart:172:16 - This requires the 'non-nullable' 
language feature to be enabled.
[SEVERE] json_serializable:json_serializable on test/widget_test.dart:
Run Code Online (Sandbox Code Playgroud)

这只是在最后一次 flutter 升级之后发生的。我尝试了很多解决方案,但没有任何效果,即使我重新安装了 flutter SDK。

这是pubspec.yaml

environment:
 sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  json_annotation: ^3.0.1
  cupertino_icons: ^0.1.3

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner:
  json_serializable: ^3.3.0
Run Code Online (Sandbox Code Playgroud)

测试代码:

import 'package:json_annotation/json_annotation.dart';

part 'test.g.dart';

//@JsonSerializable(nullable: true)
//@JsonSerializable(nullable: false)
@JsonSerializable()
class Test{
  final String test;
  Test(this.test);
}
Run Code Online (Sandbox Code Playgroud)

Moh*_*mel 1

解决这个问题的最简单方法

  • 将环境sdk降级到2.1.0

像这样

environment:
  sdk: ">=2.1.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

  • 同样的问题并更改为测试版通道也有效! (2认同)