这是我的应用程序的文件夹 struct
.idea
.vscode
android
build
fonts
Oxygen-Bold.tff
Oxygen-Light.tff
Oxygen-Regular.tff
images
pizza0.png
pizza1.png
ios
lib
ui
home.dart
main.dart
test
.gitignore
.metadata
.packages
app_widgets.iml
pubspec.lock
pubspec.yaml
README.md
在我的pubspec.yaml
文件中,我像这样加载字体和资源
flutter:
uses-material-design: true
assets:
- images/pizza0.png
- images/pizza1.png
fonts:
- family: Oxygen
fonts:
- asset: fonts/Oxygen-Regular.ttf
- asset: fonts/Oxygen-Bold.ttf
weight: 700
- asset: fonts/Oxygen-Light.ttf
weight: 300
我没有收到这pubspec.yaml
的任何错误,并且运行flutter packages get
给出的退出代码为0.
在我的家里,dart 我有以下课程:
class PizzaImageWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
AssetImage pizzaAsset = AssetImage('images/pizza0.png');
Image image = Image(image: pizzaAsset, width: 400, height: 400);
return Container(
child: image,
);
}
}
我在其他地方使用它,以便显示图像(省略了代码):
),
PizzaImageWidget(),
],
这座大楼没有错误.Flutter doctor -v没有给出任何错误,Flutter 也没有分析-v.apk似乎构建得很好,但当应用程序在我的手机上打开时,我在asset_bundle中发现以下错误.投掷:
发生异常.FlutterError(无法加载assets资源 : 图像/Pizza0.png)
该错误由此类在ASSET_bundle.dart文件中抛出:
/// An [AssetBundle] that loads resources using platform messages.
class PlatformAssetBundle extends CachingAssetBundle {
@override
Future<ByteData> load(String key) async {
final Uint8List encoded = utf8.encoder.convert(Uri(path: Uri.encodeFull(key)).path);
final ByteData asset =
await BinaryMessages.send('flutter/assets', encoded.buffer.asByteData());
if (asset == null)
throw FlutterError('Unable to load asset: $key');
return asset;
}
}
这种情况既发生在picza0.png文件中,也发生在picza1.png文件中.这些文件在树 struct 中可见,与在VS代码中一样,都在Windows资源管理器中可见.字体资源加载时没有问题.
这是我在运行Flutter Run-v时得到的输出:
[+1068毫秒]I/Flutter (6489):══╡ 图像资源捕获到异常