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

Flutter购物应用图片加载报错:Invalid Argument(s): No host specified

解决Flutter购物应用的两个问题

一、图片加载报错(Invalid Argument(s): No host specified in URI file...)

问题根源

你用了"packages/shrine_images/0-0.jpg"这种第三方包的资源路径,但实际图片存在本地assets文件夹里,路径不匹配;另外可能没正确配置pubspec.yaml的资源声明,或者多余传递了package参数。

解决步骤

  1. 修正图片路径
    把ProductsRepository里的image字段改成本地assets的实际路径,比如你的图片放在assets/images/目录下,就改成"assets/images/0-0.jpg",去掉packages/shrine_images/前缀。
  2. 检查pubspec.yaml配置
    确保在flutter节点下正确声明assets路径,示例:
    flutter:
      assets:
        - assets/images/ # 也可以指定单张图片,比如- assets/images/0-0.jpg
    
    配置完成后执行flutter pub get,或者重启项目生效。
  3. 调整Image.asset的参数
    本地资源不需要传package参数,如果Product类里的assetPackage是用于传递包名的,直接设为null或者删除这个参数,修改后的代码示例:
    Image.asset(product.image)
    

二、ListView无限滚动问题

问题根源

ListView.builder默认未设置itemCount,会无限调用itemBuilder生成内容,导致无限滚动。

解决步骤

给ListView.builder添加itemCount参数,产品详情页只需要展示当前商品的内容,所以设为1(如果有多个详情模块,就设对应数量)。修改后的代码示例:

ListView.builder(
  itemCount: 1, // 限制生成的item数量,避免无限滚动
  itemBuilder: (context, index) {
    return Column(
      children: [
        Image.asset(product.image),
        Text(product.name),
        Text("¥${product.price}"),
        // 其他详情组件
      ],
    );
  },
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:27:24