不显示Flutter图像:“无法加载资产”

9lowa7mx  于 2022-12-19  发布在  Flutter
关注(0)|答案(6)|浏览(204)

我在应用程序中看不到我的图片,而是看到一个带有X的红色框,上面写着Unable to load asset: images/aboutmaggie.png.
我创建了一个包含子目录images的目录assets,目录assets与目录pubspec.yaml处于同一级别。
我把图像放入images目录。当我在Android Studio中点击图像时,图像就会显示出来。

pubspec.yaml中,我有这些行:

flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - assets/images/

我补充道

class AboutRoute extends StatelessWidget {
  const AboutRoute({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Kabbalistic Numerology'),
        ),
        body: ListView(
            shrinkWrap: true,
            padding: const EdgeInsets.all(8),
            children: <Widget>[
              RichText(
                text: TextSpan(
                  children: <TextSpan>[
                    TextSpan(
                        text: 'About Maggie McPherson',
                        style: TextStyle(
                          fontWeight: FontWeight.bold,
                          color: Colors.black,
                        )),
                  ],
                ),
                textAlign: TextAlign.center,
              ),
              RichText(
                text: TextSpan(
                  children: <TextSpan>[
                    TextSpan(
                        text:
                            "Dr. Leslie Margaret Perrin McPherson...",
                        style: TextStyle(
                          color: Colors.black,
                        )),
                  ],
                ),
              ),
              Image.asset('images/aboutmaggie.png'), // <--this image doesn't load
            ]));
  }
}

我运行了flutter pub get。我运行了工具〉Flutter〉Flutter Clean。我关闭并重新启动了Android Studio。
错误消息为:

======== Exception caught by image resource service ================================================
The following assertion was thrown resolving an image codec:
Unable to load asset: images/aboutmaggie.png

我尝试将另一个图像放入assets/images并调用它,但第二个图像也无法加载。
这张照片有什么问题吗?

kq4fsx7k

kq4fsx7k1#

调用映像时出错,

更改代码中的此行

Image.asset('images/aboutmaggie.png')

到这一行

Image.asset('assets/images/aboutmaggie.png')

希望这能帮上忙谢谢

2skhul33

2skhul332#

试着这样做:

Image.asset('assets/images/aboutmaggie.png'),
6ojccjat

6ojccjat3#

试试下面的代码,希望对你有帮助。
有关添加资产和图像的信息,请参阅here文档
参考图像类here

    • 文件夹结构**
project directory
   - assets
       - images
          - your_image.png
    • 您的pubspec.yaml文件**
flutter:
  assets:
    - assets/images/
    • 您的小工具:**
Image.asset(
        'assets/images/ln.png',//just change your image to my image
        height: 150,
        //width: 100,
      ),

注意-如果您添加了正确的代码和详细信息,但问题尚未解决,请停止(退出)项目/应用程序并重新启动

结果屏幕-〉

2w3rbyxf

2w3rbyxf4#

需要提供映像的完整路径。请将Image.asset('images/aboutmaggie.png')替换为Image.asset('assets/images/aboutmaggie.png')

8ljdwjyq

8ljdwjyq5#

是缓存问题。昨晚我试过

Image.asset('assets/images/aboutmaggie.png'),

但这不管用。今天早上我启动Android Studio,它问我,

pubspec.yaml has changed. Do you want to run flutter pub get?

好吧,这很奇怪。我刚刚启动Android Studio。我什么都没做。我把路径改回'assets/images/aboutmaggie.png',运行flutter pub get,热重启,图像就出现了。
然后我打开pubspec.yaml并将其更改为

assets:
    - assets/bowlingballs/

我运行了flutter cleanflutter pub get,又做了一次热重启,图像继续出现。
我把路径改回了'images/aboutmaggie.png',运行了flutter pub get,做了一个热重启,图像不见了。
我的结论是如果你改变这条路

Image.asset('assets/images/aboutmaggie.png'),

然后运行flutter pub get并热重启,然后更改就会出现。但是如果你对pubspec.yaml做了更改,你将看不到更改,直到清除一些缓存。我昨晚遇到的问题是,当我设置pubspec.yaml时,我在assets之前有一个额外的空间。pubspec.yaml的那个版本被缓存,而pubspec.yaml的后续版本被忽略。flutter clean清除构建缓存,但pubspec.yaml显然不在构建缓存中。pubspec.yaml必须缓存在其他位置。

v7pvogib

v7pvogib6#

在您的终端中,运行flutter clean清除该高速缓存,然后运行flutter pub getfor flutter重新获取您的assets文件夹
这对我很有效

相关问题