Flutter: Unable to load asset: /assets/images/logo.png

Обожаю flutter. Нет, правда это лучший, на мой скромный взгляд, мультиплатформенный фреймворк. С помощью которого можно написать нативное приложение с гуём под любую платформу. И вот пилю я значится как всегда приложение и ничего не предвещало беды. На одном из этапов потребовалось, значится, добавить картиночку локально в приложение.

Прописал я как положено изображение в файле pubspec.yaml со всеми yaml подобающими отступами в виде табов:

flutter:
  assets:
    - assets/images/logo.png
    - assets/loginPage.svg
  uses-material-design: true

а на страничке непосредственно пытаюсь вот так вот вывести картинку:

Image.asset(
              '/assets/images/logo.png',
              height: 148,
            ),

и понять не понимаю какого буя приложение постоянно в эксепшн выпадает с такой вот ошибкой:

════════ Exception caught by image resource service ════════════════════════════
The following assertion was thrown resolving an image codec:
Unable to load asset: /assets/img/logo.png

When the exception was thrown, this was the stack
#0      PlatformAssetBundle.load
package:flutter/…/services/asset_bundle.dart:224
<asynchronous suspension>
#1      AssetBundleImageProvider._loadAsync
package:flutter/…/painting/image_provider.dart:675
<asynchronous suspension>
Image provider: AssetImage(bundle: null, name: "/assets/img/logo.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#9dc2c(), name: "/assets/img/logo.png", scale: 1.0)
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by image resource service ════════════════════════════
Unable to load asset: /assets/images/logo.png
════════════════════════════════════════════════════════════════════════════════
Flutter: Unable to load asset: /assets/images/logo.png

Час мучаний и гуглопоиска ни к чему хорошему не привёл. Я уже было начал подумывать, что всему виной обновление Flutter до последней, на текущий момент, версии:

$ flutter --version
Flutter 2.5.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ffb2ecea52 (13 days ago) • 2021-09-17 15:26:33 -0400
Engine • revision b3af521a05
Tools • Dart 2.14.2

Оказалось всё так глупо и прозаично, что решил в назидание таким же затупкам как и я оставить сей топик-высер. Итак внимание, барабанная дробь…

Оказывается не надо в виджете перед assets ставить слеш. <FACEPALM>. Да-да, я там фиганул слеш и потратил уйму времени на поиски решения, посыпаю голову пеплом, не будь таким как я. Делай так:

Image.asset(
              'assets/images/logo.png',
              height: 148,
            ),

Leave a Comment