首页 > 解决方案 > 颤振构建运行器不起作用 - 调用了 getter 'uri' 为 null

问题描述

我完美地将颤振与构建运行器一起使用,但今天它只是得到这个空错误。甚至认为我恢复了我的代码更改但仍然是同样的错误。

错误 :

>[SEVERE] json_serializable:json_serializable on test/widget_test.dart:

>NoSuchMethodError: The getter 'uri' was called on null.
>Receiver: null
>Tried calling: uri
>[INFO] 3.3s elapsed, 1/17 actions completed.
>[INFO] 4.4s elapsed, 1/17 actions completed.
>[INFO] 5.4s elapsed, 1/17 actions completed.
>[INFO] 6.4s elapsed, 1/17 actions completed.
>[INFO] 7.5s elapsed, 1/17 actions completed.
>[INFO] 8.5s elapsed, 1/17 actions completed.
>[INFO] 9.6s elapsed, 1/17 actions completed.
>[INFO] 10.7s elapsed, 1/17 actions completed.
>[INFO] 11.8s elapsed, 1/17 actions completed.
>[INFO] 12.9s elapsed, 1/17 actions completed.
>[INFO] 14.0s elapsed, 1/17 actions completed.
>[INFO] 15.0s elapsed, 1/17 actions completed.
>[INFO] 16.1s elapsed, 1/17 actions completed.
>[INFO] 17.1s elapsed, 1/17 actions completed.
>[WARNING] No actions completed for 15.1s, waiting on:
>  json_serializable:json_serializable on lib/common_widgets/alert_screens.dart
>  json_serializable:json_serializable on lib/common_widgets/app_logo.dart
>  json_serializable:json_serializable on lib/common_widgets/app_tab_bar.dart
>  json_serializable:json_serializable on lib/common_widgets/buttons_widgets.dart
>  json_serializable:json_serializable on lib/common_widgets/cards.dart
>  .. and 11 more
>  [INFO] 18.2s elapsed, 1/17 actions completed.
>  [INFO] 19.3s elapsed, 1/17 actions completed.

它一直这样下去。

我在用 :

    sdk: ">=2.7.0 <3.0.0"
    flutter: ^1.22.0
    build_runner: ^1.10.0
    json_serializable: ^3.5.0
    analyzer: ^0.41.1

我试图生成的模型:


    import 'package:flutter/foundation.dart';
    import 'package:json_annotation/json_annotation.dart';
    
    part 'clinic.g.dart';
    
    @JsonSerializable()
    class Clinic {
      final int establishmentYear;
      final String workingHours;
      final String phoneNumber;
      final String location;
    
      Clinic({
        @required this.establishmentYear,
        @required this.workingHours,
        @required this.phoneNumber,
        @required this.location,
      });
    
      factory Clinic.fromJson(Map<String, dynamic> json) => _$ClinicFromJson(json);
      Map<String, dynamic> toJson() => _$ClinicToJson(this);
    }

标签: android-studioflutterdartjsonserializerbuild-runner

解决方案


根据这个问题,你必须清理你的项目,获取依赖项,最后升级你的包:

  • flutter clean
  • flutter pub get
  • flutter packages upgrade

推荐阅读