Flutter 错误:flatter/lib/ui/ui_dart_state.cc(166)未处理的异常:type'_CompactLinkedHashSet<;无效>';不是类型为';未来者<;地图<&燃气轮机&燃气轮机';

Flutter 错误:flatter/lib/ui/ui_dart_state.cc(166)未处理的异常:type'_CompactLinkedHashSet<;无效>';不是类型为';未来者<;地图<&燃气轮机&燃气轮机';,flutter,dart,Flutter,Dart,当我试图从服务器解析json对象时,出现了这个错误。 我多次试图找到解决办法,但都没有找到。 IDE说这个错误发生在这个代码中,但并没有告诉具体的部分。 下面的代码是我的模型向服务模块请求api响应的代码 Future getLolBySummonerName(Map<String, String> queryBody) async { try { _lolResponse = await _lolService.getLolBySummonerName(quer

当我试图从服务器解析json对象时,出现了这个错误。 我多次试图找到解决办法,但都没有找到。 IDE说这个错误发生在这个代码中,但并没有告诉具体的部分。 下面的代码是我的模型向服务模块请求api响应的代码

Future getLolBySummonerName(Map<String, String> queryBody) async {
    try {
      _lolResponse = await _lolService.getLolBySummonerName(queryBody);
      notifyListeners();
    } on UnauthorizedException {
      return Future.error(Navigate('/loginMethod'));
    } on NotFoundException {
      return Future.error(Message('없는 소환사명입니다.'));
    }
  }

我把我所有的错误日志都带来了

E/flutter (22270): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Map<dynamic, dynamic>>'
E/flutter (22270): #0      _FutureListener.handleError (dart:async/future_impl.dart:160:20)
E/flutter (22270): #1      Future._propagateToListeners.handleError (dart:async/future_impl.dart:708:47)
E/flutter (22270): #2      Future._propagateToListeners (dart:async/future_impl.dart:729:24)
E/flutter (22270): #3      Future._completeError (dart:async/future_impl.dart:537:5)
E/flutter (22270): #4      _AsyncAwaitCompleter.completeError (dart:async-patch/async_patch.dart:47:15)
E/flutter (22270): #5      InputProfileModel.getLolBySummonerName (package:match_making/ui/input/input_profile_model.dart)
E/flutter (22270): <asynchronous suspension>
E/flutter (22270): #6      _InputLolBodyState.build.<anonymous closure> (package:match_making/ui/input/lol/component/input_lol_body.dart:43:30)
E/flutter (22270): <asynchronous suspension>
E/flutter (22270): #7      _InputLolBodyState.build.<anonymous closure> (package:match_making/ui/input/lol/component/input_lol_body.dart)
E/flutter (22270): #8      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
E/flutter (22270): #9      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
E/flutter (22270): #10     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
E/flutter (22270): #11     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
E/flutter (22270): #12     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
E/flutter (22270): #13     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:256:7)
E/flutter (22270): #14     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:158:27)
E/flutter (22270): #15     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:224:20)
E/flutter (22270): #16     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
E/flutter (22270): #17     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
E/flutter (22270): #18     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
E/flutter (22270): #19     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
E/flutter (22270): #20     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (22270): #21     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (22270): #22     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (22270): #23     _invoke1 (dart:ui/hooks.dart:267:10)
E/flutter (22270): #24     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
E/flutter (22270): 
类响应{
字符串评估;
FlexRank-FlexRank;
字符串图标;
动态水平;
列出MOST;
FlexRank-soloRank;
弦召唤名;
洛尔反应(
{本评估,
这是flexRank,
这个图标,
这个层次,,
这是我的最爱,
这是soloRank,
这个});
LolResponse.fromJson(映射json){
evaluation=json['evaluation'];
flexRank=json['flexRank']!=null
?新的FlexRank.fromJson(json['FlexRank'])
:null;
icon=json['icon'];
level=json['level'];
if(json['mosts']!=null){
mosts=新列表();
json['mosts'].forEach((v){
添加(新的mosts.fromJson(v));
});
}
soloRank=json['soloRank']!=null
?新的FlexRank.fromJson(json['soloRank'])
:null;
courderName=json['courderName'];
}
映射到JSON(){
最终地图数据=新地图();
数据['evaluation']=this.evaluation;
如果(this.flexRank!=null){
data['flexRank']=this.flexRank.toJson();
}
数据['icon']=this.icon;
数据['level']=this.level;
如果(this.mosts!=null){
data['mosts']=this.mosts.map((v)=>v.toJson()).toList();
}
如果(this.soloRank!=null){
data['soloRank']=this.soloRank.toJson();
}
数据['courderName']=this.courderName;
返回数据;
}
}
类FlexRank{
字符串图像;
字符串名;
FlexRank({this.image,this.name});
fromJson(映射json){
image=json['image'];
name=json['name'];
}
映射到JSON(){
最终地图数据=新地图();
数据['image']=this.image;
数据['name']=this.name;
返回数据;
}
}
类MOST{
字符串评估;
动态配子计数;
字符串图像;
字符串名;
int-winRate;
MOST({this.evaluation,this.gameCount,this.image,this.name,this.winRate});
Mosts.fromJson(映射json){
evaluation=json['evaluation'];
gameCount=json['gameCount'];
image=json['image'];
name=json['name'];
winRate=json['winRate'];
}
映射到JSON(){
最终地图数据=新地图();
数据['evaluation']=this.evaluation;
数据['gameCount']=this.gameCount;
数据['image']=this.image;
数据['name']=this.name;
数据['winRate']=this.winRate;
返回数据;
}
}

你能试试这个模型并检查你的api是否正常工作。

你能给你一个回复吗。谢谢您需要打印您的API响应,如果它正常工作,那么这将正常工作
class LolResponse {
  final String evaluation;
  final FlexRank flexRank;
  final String icon;
  final int level;
  final List<Most> mosts;
  final SoloRank soloRank;
  final String summonerName;

  LolResponse(
      {this.evaluation,
      this.flexRank,
      this.icon,
      this.level,
      this.mosts,
      this.soloRank,
      this.summonerName});

  factory LolResponse.fromJson(Map<String, dynamic> json) {
    return LolResponse(
        evaluation: json['evaluation'],
        flexRank: FlexRank.fromJson(json['flexRank']),
        icon: json['icon'],
        level: json['level'],
        mosts: json['mosts'].map((e) => Most.fromJson(e)).toList(),
        soloRank: SoloRank.fromJson(json['soloRank']),
        summonerName: json['summonerName']);
  }
}

class FlexRank {
  final String image;
  final String name;

  FlexRank({this.image, this.name});

  factory FlexRank.fromJson(Map<String, dynamic> json) {
    if (json == null) return FlexRank();
    return FlexRank(image: json['image'], name: json['name']);
  }
}

class Most {
  final String evaluation;
  final int gameCount;
  final String image;
  final String name;
  final double winRate;

  Most({this.evaluation, this.gameCount, this.image, this.name, this.winRate});

  factory Most.fromJson(Map<String, dynamic> json) {
    if (json == null) return Most();
    return Most(
        evaluation: json['evaluation'],
        gameCount: json['gameCount'],
        image: json['image'],
        name: json['name'],
        winRate: json['winRate']);
  }
}

class SoloRank {
  final String image;
  final String name;

  SoloRank({this.image, this.name});

  factory SoloRank.fromJson(Map<String, dynamic> json) {
    if (json == null) return SoloRank();
    return SoloRank(image: json['image'], name: json['name']);
  }
}
[√] Flutter (Channel stable, 1.20.1, on Microsoft Windows [Version 10.0.19041.388], locale ko-KR)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
[√] Android Studio (version 4.0)
[!] IntelliJ IDEA Community Edition (version 2019.2)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code (version 1.47.3)
[√] Connected device (1 available)

! Doctor found issues in 1 category.
E/flutter (22270): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Map<dynamic, dynamic>>'
E/flutter (22270): #0      _FutureListener.handleError (dart:async/future_impl.dart:160:20)
E/flutter (22270): #1      Future._propagateToListeners.handleError (dart:async/future_impl.dart:708:47)
E/flutter (22270): #2      Future._propagateToListeners (dart:async/future_impl.dart:729:24)
E/flutter (22270): #3      Future._completeError (dart:async/future_impl.dart:537:5)
E/flutter (22270): #4      _AsyncAwaitCompleter.completeError (dart:async-patch/async_patch.dart:47:15)
E/flutter (22270): #5      InputProfileModel.getLolBySummonerName (package:match_making/ui/input/input_profile_model.dart)
E/flutter (22270): <asynchronous suspension>
E/flutter (22270): #6      _InputLolBodyState.build.<anonymous closure> (package:match_making/ui/input/lol/component/input_lol_body.dart:43:30)
E/flutter (22270): <asynchronous suspension>
E/flutter (22270): #7      _InputLolBodyState.build.<anonymous closure> (package:match_making/ui/input/lol/component/input_lol_body.dart)
E/flutter (22270): #8      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
E/flutter (22270): #9      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
E/flutter (22270): #10     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
E/flutter (22270): #11     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
E/flutter (22270): #12     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
E/flutter (22270): #13     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:256:7)
E/flutter (22270): #14     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:158:27)
E/flutter (22270): #15     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:224:20)
E/flutter (22270): #16     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
E/flutter (22270): #17     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
E/flutter (22270): #18     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
E/flutter (22270): #19     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
E/flutter (22270): #20     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (22270): #21     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (22270): #22     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (22270): #23     _invoke1 (dart:ui/hooks.dart:267:10)
E/flutter (22270): #24     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
E/flutter (22270): 
{
  "evaluation": "string",
  "flexRank": {
    "image": "string",
    "name": "string"
  },
  "icon": "string",
  "level": 0,
  "mosts": [
    {
      "evaluation": "string",
      "gameCount": 0,
      "image": "string",
      "name": "string",
      "winRate": 0
    }
  ],
  "soloRank": {
    "image": "string",
    "name": "string"
  },
  "summonerName": "string"
}
              class LolResponse {
                  String evaluation;
                  FlexRank flexRank;
                  String icon;
                  dynamic level;
                  List<Mosts> mosts;
                  FlexRank soloRank;
                  String summonerName;

                  LolResponse(
                      {this.evaluation,
                      this.flexRank,
                      this.icon,
                      this.level,
                      this.mosts,
                      this.soloRank,
                      this.summonerName});

                  LolResponse.fromJson(Map<String, dynamic> json) {
                    evaluation = json['evaluation'];
                    flexRank = json['flexRank'] != null
                        ? new FlexRank.fromJson(json['flexRank'])
                        : null;
                    icon = json['icon'];
                    level = json['level'];
                    if (json['mosts'] != null) {
                      mosts = new List<Mosts>();
                      json['mosts'].forEach((v) {
                        mosts.add(new Mosts.fromJson(v));
                      });
                    }
                    soloRank = json['soloRank'] != null
                        ? new FlexRank.fromJson(json['soloRank'])
                        : null;
                    summonerName = json['summonerName'];
                  }

                  Map<String, dynamic> toJson() {
                    final Map<String, dynamic> data = new Map<String, dynamic>();
                    data['evaluation'] = this.evaluation;
                    if (this.flexRank != null) {
                      data['flexRank'] = this.flexRank.toJson();
                    }
                    data['icon'] = this.icon;
                    data['level'] = this.level;
                    if (this.mosts != null) {
                      data['mosts'] = this.mosts.map((v) => v.toJson()).toList();
                    }
                    if (this.soloRank != null) {
                      data['soloRank'] = this.soloRank.toJson();
                    }
                    data['summonerName'] = this.summonerName;
                    return data;
                  }
                }

                class FlexRank {
                  String image;
                  String name;

                  FlexRank({this.image, this.name});

                  FlexRank.fromJson(Map<String, dynamic> json) {
                    image = json['image'];
                    name = json['name'];
                  }

                  Map<String, dynamic> toJson() {
                    final Map<String, dynamic> data = new Map<String, dynamic>();
                    data['image'] = this.image;
                    data['name'] = this.name;
                    return data;
                  }
                }

                class Mosts {
                  String evaluation;
                  dynamic gameCount;
                  String image;
                  String name;
                  int winRate;

                  Mosts({this.evaluation, this.gameCount, this.image, this.name, this.winRate});

                  Mosts.fromJson(Map<String, dynamic> json) {
                    evaluation = json['evaluation'];
                    gameCount = json['gameCount'];
                    image = json['image'];
                    name = json['name'];
                    winRate = json['winRate'];
                  }

                  Map<String, dynamic> toJson() {
                    final Map<String, dynamic> data = new Map<String, dynamic>();
                    data['evaluation'] = this.evaluation;
                    data['gameCount'] = this.gameCount;
                    data['image'] = this.image;
                    data['name'] = this.name;
                    data['winRate'] = this.winRate;
                    return data;
                  }
                }