Как включить файловые ресурсы, которые будут использоваться вашим собственным пакетом во flutter

#flutter #dart #assets

#flutter #dart #ресурсы

Вопрос:

У меня есть пакет, в который я пытаюсь загрузить строку из своего корневого каталога. Этот файл должен использоваться в самом пакете только как часть внутренней конфигурации. Я не вижу, где я ошибаюсь.

Это моя структура папок:

 my-package
  --> lib
  --> pubspec.yaml
  --> assets/file.js
  

Это содержимое моего pubspec.yaml

 flutter:
  assets:
    - assets/
    - assets/file.js
  

Вот как я это называю

 String js = await rootBundle.loadString('assets/file.js');
  

Я продолжаю получать не удается загрузить ресурс

 Unable to load asset: assets/file.js
  

Ответ №1:

была такая же проблема, но решила ее, выполнив это:

В вашем пакете.файл yaml, добавьте эту строку для импорта файла / ресурса

 assets:
- packages/<Package name>/assets/<File name>
  

Замените <Package name> на имя вашего пакета и <File name> на имя указанного файла / ресурса.

Затем поместите файл / ресурс в папку в каталоге lib вашего пакета. Структура должна выглядеть примерно так:

 my_package
--> lib
    --> assets
        file.js
  

При необходимости обязательно добавьте в ссылку какие-либо дополнительные папки.

При ссылке на файл / ресурс в вашем приложении или пакете используйте ту же ссылку, что и у вас.файл yaml:

 String js = await rootBundle.loadString('packages/<Package name>/assets/file.js');
  

Например, здесь я получаю файл .js.

Комментарии:

1. Спасибо! Это просто решило старую проблему. O мне не нужно дублировать ресурсы плагина. Я не могу поверить, что это заняло так много времени, чтобы получить ответ