【发布时间】:2023-03-27 00:27:01
【问题描述】:
这是我的包core 的文件夹结构:
/pubspec.yaml
/assets
|-images
|-lang
|- en.json
|- hi.json
我对另一个名为 moduleA 的模块有类似的结构
现在,当我加载 json 文件时,我会像这样加载它:
await rootBundle.loadString('assets/lang/en.json');
但问题是,当我在 'moduleA' 中使用 'core' 模块的屏幕时,'core' 模块会在 'moduleA' 内部查找文件路径。我需要的是一种方法来指定从哪个包加载文件:
现在我已经查看了打击问题的答案并尝试了它,但它对我不起作用:
How to use rootBundle in flutter to load images?
执行 rootBundle.loadString('packages/core/assets/lang/en.json') 尽管已在 pubspec.yaml 文件中指定并复制了核心内的 assets/ 文件夹,但仍然给我一个文件未找到错误/lib 文件夹。
所以,当我使用以下方法加载字符串时:
await rootBundle.loadString('packages/core/assets/lang/${locale.languageCode}.json');
我收到以下错误:
Error: unable to find directory entry in pubspec.yaml: /Users/nateshmbhat/Desktop/nuclei-flutter-sdk/core/packages/core/assets/images/
这是我的 core/pubspec.yaml 内容:
flutter:
assets:
- packages/core/assets/lang/
- packages/core/assets/images/
我已将 assets 文件夹移动到 core/lib/ 中。
我在这里做错了什么吗?知道如何解决这个问题吗?
【问题讨论】:
-
资产必须是
lib/assets -
你找到解决方案了吗?
-
是的,请看下面的答案
标签: android flutter flutter-dependencies