フラッターバージョン:
flutter_macos_v1.9.1+hotfix.2-stable
ターミナルで新しいプロジェクトを作成します。
flutter create myapp
vscodeを開いて編集pubspec.yaml
:
dependencies:
json_annotation: ^3.0.0
dev_dependencies:
build_runner: ^1.7.0
json_serializable: ^3.2.2
ターミナルでパッケージを取得:
flutter pub get
新着 /lib/user.Dart
と以下に記入:
import 'package:json_annotation/json_annotation.Dart';
part 'user.g.Dart';
@JsonSerializable()
class User extends Object {
@JsonKey(name: 'seed')
String seed;
@JsonKey(name: 'results')
int results;
@JsonKey(name: 'page')
int page;
@JsonKey(name: 'version')
String version;
User(
this.seed,
this.results,
this.page,
this.version,
);
factory User.fromJson(Map<String, dynamic> srcJson) =>
_$UserFromJson(srcJson);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
実行flutter pub run build_runner build
ターミナル:
[INFO] Generating build script...
[INFO] Generating build script completed, took 321ms
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 10.4s
[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 698ms
[INFO] Checking for unexpected pre-existing outputs....
[INFO] Checking for unexpected pre-existing outputs. completed, took 2ms
[INFO] Running build...
[SEVERE] json_serializable:json_serializable on lib/user.Dart:
Invalid argument(s): Path must be absolute : Dart:core
[SEVERE] json_serializable:json_serializable on lib/main.Dart:
Invalid argument(s): Path must be absolute : Dart:core
[SEVERE] json_serializable:json_serializable on test/widget_test.Dart:
Invalid argument(s): Path must be absolute : Dart:core
[INFO] Running build completed, took 1.5s
[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 36ms
[SEVERE] Failed after 1.6s
なぜ成功しなかったのですか?
アナライザーがそれを壊しているようで、analyzer: 0.38.2
にダウングレードすると解決しました。
ソース: https://github.com/Dart-lang/sdk/issues/38499#issuecomment-533812652
同じ問題がありました。
build_runner 0.9.2
json_serializable 0.5.8 + 1
json_annotation 0.2.9 + 1
この状況ではそうではない可能性がありますが、自動フォーマッターがこの行を削除することで同様の問題が発生しました。
part 'my_class.g.Dart';
その行を追加してコマンドを再度実行すると、問題なく動作しました。