You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter运行时Debug控制台无预期输出且报Chrome偏好保存错误

问题根因
  • 循环逻辑错误:代码中for循环的判断条件写反,初始值i=0时i>100的判断结果永远为假,循环体一次都不会执行,自然不会打印接口返回的内容。你单独写的print("hi")不在循环逻辑内,所以可以正常输出。
  • 浏览器进程残留报错:你使用Edge作为调试设备,上次调试结束后相关进程没有被完全杀死,残留进程占用了Flutter生成的临时缓存文件,触发errno=32的文件占用错误,部分场景下会打断正常代码执行流程。
  • 类型声明不规范:fetchAlbum方法没有指定返回值泛型,解码后的数据为隐式dynamic类型,若接口返回结构不符合预期也可能触发运行时异常终止后续逻辑。
解决步骤
  1. 修正for循环条件,将i>100改为i<100,同时可以先打印接口返回数据的长度,确认接口请求正常:
import 'package:http/http.dart' as http;
import 'dart:convert';
void main()async {
  var data =await fatchalbum();
  // 先确认接口返回数据是否正常
  print("接口返回数据长度:${data.length}");
  // 修正循环条件
  for(int i =0; i<100;i++){
    print(data[i]["userId"]);
    print(data[i]["id"]);
    print(data[i]["title"]);
  }
}

Future<List<dynamic>> fatchalbum()async{
  final url ="https://jsonplaceholder.typicode.com/albums";
  final res = await http.get(Uri.parse(url));
  if(res.statusCode==200){
    var obj = json.decode(res.body);
    return obj;
  }else{
    throw Exception("error");
  }
}
  1. 遇到文件占用报错时,打开任务管理器结束所有残留的Edge/Chrome调试进程,也可以直接删除C:\Users\dell\AppData\Local\Temp目录下所有flutter_tools开头的临时文件夹,再重新启动调试即可。

内容的提问来源于stack exchange,提问作者Amal yosri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:09:03