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