flutter - 无法从 Flutter 插件顶部加载资产
问题描述
我正在开发一个颤振插件,使用该插件时Unable to load asset
出现错误。使用插件时我必须做一些特别的事情吗?
我在主应用程序中加载图像没有问题。
来自 pubspec.yaml:
flutter:
# To add assets to your plugin package, add an assets section, like this:
assets:
- icons/
- icons/myimage.png # << Just to show, that this also is not not working
uses-material-design: true
plugin:
...
还尝试过:
- 使用 TAB 等来回移动
- 将文件夹重命名为 assets
使用图像文件夹资产:
Image.asset('icons/myimage.png', height: 12.0),
我收到此错误:
flutter: ══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
flutter: The following assertion was thrown resolving an image codec:
flutter: Unable to load asset: icons/myimage.png
解决方案
要从非应用程序包中加载资产,您需要将package
参数传递给加载资产的方法,例如
Image.asset('icons/myimage.png', package: 'my_package', height: 12.0),
另请参阅 docs.flutter.io/flutter/widgets/Image/Image.asset.html
为了能够使用依赖项(插件或普通 Dart 包)中的资产,请遵循https://flutter.dev/docs/development/ui/assets-and-images#bundling-of-package-assets
在依赖项中,所有文件都需要在其中,lib/
因为只有这些文件可供包用户使用。
资产路径pubspec.yaml
需要从packages/package_name/some_folder_inside_lib
flutter
assets:
- packages/my_package/some_folder_inside_lib/my_image.png
目前还有另一个限制,即所有资产文件都需要单独列出pubspec.yaml
,与应用程序项目中的资产相反,列出文件夹就足够了。投票并订阅https://github.com/flutter/flutter/issues/22944以获取有关更新的通知。
推荐阅读
- go - 返回自定义错误类型与仅创建新错误
- c# - 无法将数据插入 SQL Server 中的外键
- java - 用 BFG 替换 History 中的 License 标头
- c# - 更新导致数据丢失/删除
- email - google sheet : 以 pdf 格式发送多张带有多个电子邮件地址的表格
- openapi - 如何使用 OpenApi 模式中的 OperationId?
- php - 如何解决“未调度预期的 [App\Events\UserRegistered] 事件。” 错误?
- scala - 有没有办法用每行的自定义连接来连接两个 Spark 数据帧
- python - 如何展开螺旋图?
- scala - 如何在 MacOS 上的 intellij IDEA 中更改运行时 JAVA 堆空间?