我在应用程序中看不到我的图片,而是看到一个带有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
并调用它,但第二个图像也无法加载。
这张照片有什么问题吗?
6条答案
按热度按时间kq4fsx7k1#
调用映像时出错,
更改代码中的此行
到这一行
希望这能帮上忙谢谢
2skhul332#
试着这样做:
6ojccjat3#
试试下面的代码,希望对你有帮助。
有关添加资产和图像的信息,请参阅here文档
参考图像类here
pubspec.yaml
文件**注意-如果您添加了正确的代码和详细信息,但问题尚未解决,请停止(退出)项目/应用程序并重新启动
结果屏幕-〉
2w3rbyxf4#
需要提供映像的完整路径。请将
Image.asset('images/aboutmaggie.png')
替换为Image.asset('assets/images/aboutmaggie.png')
。8ljdwjyq5#
是缓存问题。昨晚我试过
但这不管用。今天早上我启动Android Studio,它问我,
好吧,这很奇怪。我刚刚启动Android Studio。我什么都没做。我把路径改回
'assets/images/aboutmaggie.png'
,运行flutter pub get
,热重启,图像就出现了。然后我打开
pubspec.yaml
并将其更改为我运行了
flutter clean
、flutter pub get
,又做了一次热重启,图像继续出现。我把路径改回了
'images/aboutmaggie.png'
,运行了flutter pub get
,做了一个热重启,图像不见了。我的结论是如果你改变这条路
然后运行
flutter pub get
并热重启,然后更改就会出现。但是如果你对pubspec.yaml
做了更改,你将看不到更改,直到清除一些缓存。我昨晚遇到的问题是,当我设置pubspec.yaml
时,我在assets
之前有一个额外的空间。pubspec.yaml
的那个版本被缓存,而pubspec.yaml
的后续版本被忽略。flutter clean
清除构建缓存,但pubspec.yaml
显然不在构建缓存中。pubspec.yaml
必须缓存在其他位置。v7pvogib6#
在您的终端中,运行flutter clean清除该高速缓存,然后运行flutter pub getfor flutter重新获取您的assets文件夹
这对我很有效