Flutter加载图片报No host specified in URI错误如何解决?
报错原因
NetworkImage是Flutter专门用于加载网络远程图片的组件,要求传入参数必须是带http:///https://协议头的完整网络URL。你传入的是项目本地assets目录的相对路径,NetworkImage解析路径时会自动补全file://前缀生成文件URI,但该URI缺少合法主机标识,因此触发参数非法异常。
修复方案
根据你的实际使用场景二选一即可:
场景1:图片存放在项目本地assets目录
- 第一步先确认
pubspec.yaml中已经正确声明了资源路径,示例配置如下:
flutter: assets: - assets/Upload/Item/
- 第二步将
NetworkImage替换为本地资源专用的AssetImage加载即可:
// 写法1:配合Image组件使用 Image( image: AssetImage('assets/Upload/Item/214b5d5c-ca86-45f5-bb45-7850559a23bb.jpg'), ) // 写法2:直接使用Image.asset快捷构造 Image.asset('assets/Upload/Item/214b5d5c-ca86-45f5-bb45-7850559a23bb.jpg')
场景2:实际需要加载网络远程图片
确认传入NetworkImage的路径是完整的网络URL,必须携带http:///https://协议头和对应域名,示例:
Image( image: NetworkImage('https://你的服务域名/Upload/Item/214b5d5c-ca86-45f5-bb45-7850559a23bb.jpg'), )
内容的提问来源于stack exchange,提问作者Awais Rehman
相关产品推荐
相关产品推荐

