0Day Forums
FlutterError: Unable to load asset - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: Flutter & Dart (https://0day.red/Forum-Flutter-Dart)
+--- Thread: FlutterError: Unable to load asset (/Thread-FlutterError-Unable-to-load-asset)



FlutterError: Unable to load asset - hemispasm10962 - 07-21-2023

This is the folder structure of my app

.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

In my `pubspec.yaml` file, I load the fonts and assets like this

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


I'm not getting any errors for this `pubspec.yaml`, and running `flutter packages get` gives an exit code of 0.

In my home.dart I have the following class:

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,
);
}
}

Which I use elsewhere, in order to show the image (code omitted):

),
PizzaImageWidget(),
],

The building gives no errors. Flutter Doctor -v doesn't give any errors, neither does Flutter Analyze -v. The .apk seems to build just fine but when the app opens up on my phone I get the following error in asset_bundle.dart:

> Exception has occurred. FlutterError (Unable to load asset:
> images/pizza0.png)

The error is thrown by this class in the asset_bundle.dart file:

/// 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;
}
}

This happens both for the pizza0.png file as well as the pizza1.png file. The files are visible in the tree structure, both in Windows Explorer as in VS Code. The font assets load without issue.

This is the output I am getting when running Flutter Run -v:

> [+1068 ms] I/flutter ( 6489): ══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE
> SERVICE ╞════════════════════════════════════════════════════ [ +9
> ms] I/flutter ( 6489): The following assertion was thrown resolving an
> image codec: [ +2 ms] I/flutter ( 6489): Unable to load asset:
> images/pizza0.png [ +2 ms] I/flutter ( 6489): [ +1 ms] I/flutter (
> 6489): When the exception was thrown, this was the stack: [ +2 ms]
> I/flutter ( 6489): #0 PlatformAssetBundle.load
> (package:flutter/src/services/asset_bundle.dart:221:7) [ +1 ms]
> I/flutter ( 6489): <asynchronous suspension> [ +1 ms] I/flutter (
> 6489): #1 AssetBundleImageProvider._loadAsync
> (package:flutter/src/painting/image_provider.dart:429:44) [ +1 ms]
> I/flutter ( 6489): <asynchronous suspension> [ +1 ms] I/flutter (
> 6489): #2 AssetBundleImageProvider.load
> (package:flutter/src/painting/image_provider.dart:414:14) [ +1 ms]
> I/flutter ( 6489): #3 ImageProvider.resolve.<anonymous
> closure>.<anonymous closure>
> (package:flutter/src/painting/image_provider.dart:267:86) [ +4 ms]
> I/flutter ( 6489): #4 ImageCache.putIfAbsent
> (package:flutter/src/painting/image_cache.dart:143:20) [ +3 ms]
> I/flutter ( 6489): #5 ImageProvider.resolve.<anonymous closure>
> (package:flutter/src/painting/image_provider.dart:267:63) [ +3 ms]
> I/flutter ( 6489): (elided 8 frames from package dart:async) [ +1
> ms] I/flutter ( 6489): [ +1 ms] I/flutter ( 6489): Image provider:
> AssetImage(bundle: null, name: "images/pizza0.png") [ +3 ms]
> I/flutter ( 6489): Image key: AssetBundleImageKey(bundle:
> PlatformAssetBundle#20fc8(), name: "images/pizza0.png", [ +1 ms]
> I/flutter ( 6489): scale: 1.0) [ +2 ms] I/flutter ( 6489):
> ════════════════════════════════════════════════════════════════════════════════════════════════════