【发布时间】:2023-03-17 19:47:01
【问题描述】:
我需要一个库来加载位于主应用程序资产目录中的 SVG(使用 flutter_svg 包)。现在我在库函数中有以下代码:
SvgPicture.asset(svgSrc, package: 'example_app')
其中 svgSrc 将是“assets/images/logo.svg”。
但是在颤振运行时我得到以下异常:
Error while trying to load an asset: Failed to load asset at "assets/packages/example_app/assets/images/logo.svg" (404)
══╡ EXCEPTION CAUGHT BY SVG ╞═══════════════════════════════════════════════════════════════════════
The following assertion was thrown resolving a single-frame picture stream:
Unable to load asset: packages/example_app/assets/images/logo.svg
我已经添加了主应用程序的 pubspec.yaml:
assets:
- assets/images/
我哪里错了?
【问题讨论】:
-
确保在 pubspec.yaml 中
assets:键位于flutter:键下方 -
谢谢,但是我的缩进是错误的。即使在更正之后,我仍然会遇到同样的异常。
-
然后确保该文件实际位于此目录中
packages/example_app/assets/images/logo.svg曾经发生在我的资产文件夹中有一个资产文件夹,因此路径错误。 -
我已验证该文件在相对路径中,但“packages”作为 example_app 的父目录不存在。库和应用程序是否必须共享一个包父目录?
-
assets:键下提供的路径似乎与您的应用根目录相关。我个人将资产文件夹放在项目根目录中的 lib、build、... 文件夹旁边。
标签: flutter