[英]Flutter: Unable to load asset Image provider: AssetImage(bundle: null, name: "assets/images/rose.jpg")
我无法将图像作为背景上传到堆栈,我已在资产文件夹中添加图像并将其添加到 pubspec.yaml 并向我显示该错误:
Exception caught by image resource service.
The following assertion was thrown resolving an image codec:
Unable to load asset: assets/images/rose.jpg
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:225:7)
<asynchronous suspension>
#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:668:31)
#2 AssetBundleImageProvider.load (package:flutter/src/painting/image_provider.dart:651:14)
#3 ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:504:13)
...
Image provider: AssetImage(bundle: null, name: "assets/images/rose.jpg")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#dea48(), name: "assets/images/rose.jpg", scale: 1.0)
代码:
return new Scaffold(
backgroundColor: Colors.greenAccent,
body: new Stack(
children: [
new Image(
image: new AssetImage("assets/images/rose.jpg"),
fit: BoxFit.cover,
),
],
),
);
运行flutter clean
并再次运行。
您的资产文件夹位于项目文件夹根目录中的正确位置。
该错误是因为您使用的是图像提供程序 AssetImage 而不是 Image.asset("assets/images/rose.jpg")。
对图像资产进行更改后,请确保将其保存以自动检索新的图像依赖项或运行 $ flutter pub get。
还要检查您是否已将图像路径添加到您的 pubspec.yaml 中的资产子部分,如下所示:
flutter:
assets:
- assets/images/rose.jpg
您是否在 pubspec.yaml 文件中添加了资产?
assets:
- assets/images/rose.jpg
请检查您的 pubspec.yaml 文件是否正确缩进如下。 不正确的间距/缩进可能会导致找不到图像。
flutter: assets: - assets/images/rose.jpg
在您的终端上:
flutter pub get
刷新 pubspec.yaml
停止您的模拟器和项目并键入: flutter 在终端中清理并再次运行
Image.asset("images/abc.jpg"),
而不是这个:
Image.asset("assets/images/abc.jpg"),
加:
确保它写在 pubspec.yaml 中
assets:
- assets/images/ //ONLY
如果您添加了最近的图像,则更新 pubspec
flutter pub get
添加新资产后,最好停止当前调试 session 并再次运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.