flutter - 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
解决方案
我有一个解决方案。即使我的包试图加载自己的资产,它仍然必须将自己指定为位置。
这是 my_package 如何加载图像资产(指定包),在小部件中使用它,并且该小部件很容易被外部应用程序使用。
Image.asset(AssetImage("assets/splash.png").assetName, package: 'my_package',);
推荐阅读
- angular - 如何创建订阅 BehaviorSubject 和差异类型的返回值
- php - PHP 7.3 Laravel 数据库自动数字舍入错误
- javascript - 在javascript中的html模板字符串中将所有没有http url替换为http://?
- android - 收到警告“您的应用容易受到 Intent Redirection”的影响,但在预启动中没有发现错误
- amazon-web-services - 通过 CNAME 别名访问应用程序时,什么可能导致应用程序过时?
- sql - 存储过程 - 如果过程的任何部分失败,则不执行
- ios - iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?
- c# - 如何计算数据表中所有行中特定的 [Math.pow] 列
- mysql - 如何处理返回没有行的 IN 子句的子查询
- php - 无法让我的 PHP 代码删除 mysql 中的行