背景
我的应用程序有几个我自己开发的包。我的项目结构如下:
/my_app
- /lib
- /my_packages
- /package_1
- /package_2
- ...
一些包会根据环境(iOS、Android、Web、dev/prod)改变它们的行为。例如,包在开发中查询“localhost”,但在生产中查询“www.example.com”。
问题
我想在包之间共享环境。我认为最好的方法是开发另一个包。这样,我可以将包库导入到其他每个包中。包如下所示:
文件结构
/environment_pkg
- /assets
- /configs
- config1.json
- config2.json
- ...
发布规范.yaml
flutter:
assets:
- assets/configs/config1.json
- assets/configs/config2.json
- ...
加载数据中
static Future<void> initialize(String name) async {
final configString = await rootBundle.loadString('assets/configs/${name}.json');
_config = json.decode(configString) as Map<String, dynamic>;
}
错误
Unhandled Exception: Unable to load asset: assets/configs/config1.json
概括
我正在尝试使用 rootBundle 使用颤振包从资产文件夹加载 JSON 文件。Flutter 无法找到这些文件。