首页 > 解决方案 > Flutter 包读取自己的资产

问题描述

我有一个带有“资产”文件夹的模块,该文件夹与我的 pubspec.yaml 文件位于同一目录中。在我的资产文件夹中,我有 test.txt 和 simpleObject.json。

flutter:
  assets:
    - assets/test.txt
    - assets/simpleObject.json

我相信下面的代码应该允许我将它读入我的应用程序。

var test = await DefaultAssetBundle.of(context).loadString("assets/test.txt");

可悲的是,我收到以下错误:

[错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:无法加载资产:assets/test.txt

错误来自asset_bundle.dart。我不得不假设这是我的错,但根据我读过的所有内容,我做得正确。有什么想法吗?

如果有帮助,这是我的文件结构。

MyModule
    |_assets/test.txt
    |_lib/
    |_pubspec.yaml

标签: flutterdartassets

解决方案


我有一个解决方案。即使我的包试图加载自己的资产,它仍然必须将自己指定为位置。

这是 my_package 如何加载图像资产(指定包),在小部件中使用它,并且该小部件很容易被外部应用程序使用。

Image.asset(AssetImage("assets/splash.png").assetName, package: 'my_package',);

推荐阅读