1 添加項目依賴
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: ^1.1.3
json_serializable: ^3.2.0
2 創建實體類
可以使用json_serializable庫,將json 拷貝進去自動生成(簡單json可以生成,在嵌套一層便會提示“不是一個正確的json”,不是特別好用)
將生成得subject.dart文件拷貝到項目中,提示如下異常
3 生成.g.dart文件
cd 你的工程目錄
flutter packages pub run build_runner build //使用 build_runner 生成 .g.dart 文件
flutter packages pub run build_runner wacth //監控生成文件,如果有改動時自動生成/更新 .g.dart 文件
還沒有生成.g.dart文件或者報錯的運行下面的命令
cd 你的工程目錄
flutter packages pub run build_runner build --delete-conflicting-outputs //刪除並重新創建.g.dart文件
沒有生成的再運行一下
flutter packages pub run build_runner build
4、異常
F:\demo\flutter_demo\LeanDemo>flutter packages pub run build_runner build
[INFO] Generating build script...
[INFO] Generating build script completed, took 282ms
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 17.8s
[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 1.0s
[INFO] Checking for unexpected pre-existing outputs....
[INFO] Found 1 declared outputs which already exist on disk. This is likely because the`.dart_tool/build` folder was deleted, or you are submitting generated files to your source repository.
[SEVERE] Conflicting outputs were detected and the build is unable to prompt for permission to remove them. These outputs must be removed manually or the build can be run with `--delete-conflicting-outputs`. The outputs are: lib/a
/model/entity/subject.g.dart
pub finished with exit code 78
找到一個已聲明的輸出,該輸出已存在於磁盤上。這可能是因爲“.dart_tool/build”文件夾已刪除,或者您正在將生成的文件提交到源存儲庫。
運行flutter packages pub run build_runner build
不光生成了xxxx.g.dart
。同時還成了一個dart_tool/build目錄,只運行app是沒有問題的,之前xxxx.g.dart
還是可用的。但是再生成新的xxxx.g.dart
因爲缺少之前生成dart_tool/build目下的文件就會報錯。
解決:
//清除之前生成的文件,如果直接運行下面的不行。可以先嚐試運行這個
flutter packages pub run build_runner clean
//可以直接運行這個
flutter packages pub run build_runner build --delete-conflicting-outputs
//在重新生成.g.dart
flutter packages pub run build_runner build