升级Flutter后出现ArgumentError无效网络地址jsonplaceholder报错如何解决
问题根因
该错误是Flutter版本升级(通常是3.10及以上版本配套的Dart 3.x)后,网络相关逻辑的严格校验、默认配置变更导致的域名解析失败,可按照以下步骤逐一排查解决:
排查&解决步骤
- 检查Uri解析是否正常
先打印解析后的Uri主机地址确认有效性:
如果输出异常,大概率是代码行存在复制粘贴带入的不可见零宽字符,手动重新编写该行Uri解析代码即可。final uri = Uri.parse('https://jsonplaceholder.typicode.com/albums'); print(uri.host); // 正常应该输出 jsonplaceholder.typicode.com - 确认平台网络权限配置
升级Flutter后旧项目的原生配置可能未适配新版本要求:- 安卓端:检查
android/app/src/main/AndroidManifest.xml是否已配置网络权限<uses-permission android:name="android.permission.INTERNET" /> - iOS端:检查
ios/Runner/Info.plist是否已配置网络访问权限,可临时添加全局允许配置验证:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
- 安卓端:检查
- 升级网络依赖包版本
旧版本http/dio等网络请求包和新Flutter版本不兼容也会触发该问题,执行命令升级对应依赖到最新稳定版:flutter pub upgrade http - 验证网络环境可用性
打开测试设备/模拟器的系统浏览器,直接访问https://jsonplaceholder.typicode.com/albums确认是否可以正常加载:- 无法加载:说明是设备本身的网络问题,可尝试切换网络、修改DNS为公共DNS(如8.8.8.8)、或使用代理解决
- 可以加载:可尝试自定义DNS解析逻辑替换系统默认解析,避免系统DNS异常问题
内容的提问来源于stack exchange,提问作者Mohamed Ayman
相关产品推荐
相关产品推荐

