0

背景

我的应用程序有几个我自己开发的包。我的项目结构如下:

/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 无法找到这些文件。

4

0 回答 0