首页 > 解决方案 > 为什么我的资产图像第一次加载但第二次在我用颤振构建我的应用程序时加载

问题描述

我正在开发一个应用程序,每当我第一次构建它时,图像都不会加载。但是当我重新运行它时,它会加载。为什么会发生这种情况。

这是我第一次运行时的错误截图

错误

浏览图像的代码:

 final _pages_images = [
    Image.asset("assets/FirstScreenImages/mdpi/Group 5.png", fit: BoxFit.fill),
    Image.asset(
      "assets/FirstScreenImages/mdpi/Group 6.png",
      fit: BoxFit.fill,
    ),
    Image.asset(
      "assets/FirstScreenImages/mdpi/Group.png",
      fit: BoxFit.fill,
    )
  ];

Widget _buildPageView() {
    return PageView.builder(
      controller: _pageController,
      itemCount: _pages_images.length,
      itemBuilder: (context, index) => Container(
        child: _pages_images[index],
      ),
      onPageChanged: (int index) =>
          setState(() => _currentPageNotifier = index),
    );
  }

pubspec.yaml 文件:

  assets:
    - assets/FirstScreenImages/mdpi/Group 5.png
    - assets/FirstScreenImages/mdpi/Group 6.png
    - assets/FirstScreenImages/mdpi/Group.png

标签: flutterdart

解决方案


您不必指定每个文件,您可以包含目录。

  assets:
    - assets/FirstScreenImages/mdpi/

现在关于您的问题,如果可能的话,我建议避免在文件名和路径中使用空格,而不管编程语言或操作系统如何,恕我直言,“Group_6.png”与“Group 6.png”一样漂亮,而您没有担心是否会因为像空格字符这样微不足道的东西而弹出错误。

Flutter 的 github 页面上有一个未解决的问题,它描述了您遇到的完全相同的问题(路径包含一个空格:第一次运行会出错,但在进行热重载时会停止出错)。如果您切换颤振版本,您可能会使其与空格一起使用,但老实说,不使用空格字符(如果可能的话)要容易得多。


推荐阅读