我有一个父项目和一个本地子项目,已像这样添加到父项目中
- parent
- packages/subproject
这个子项目里面有一些像这样添加的资产
- packages/subproject/lib/assets/icons
这是子项目 pubspec.yaml
assets:
- packages/messaging_core/assets/icons/
我也这样称呼图标为路径
packages/messaging_core/assets/icons/copy.svg
但是我在我的应用程序中看不到本地包中的图标 但是,如果我将其发送到 github 并从那里导入,一切都会好起来的。 知道出了什么问题吗?
该问题可能与您在
pubspec.yaml
文件中使用的路径有关。当引用本地包中的资源时,您应该使用 lib/
前缀而不是 packages/
。
尝试在
subproject's pubspec.yaml
文件中更改资产声明,如下所示:
assets:
- lib/assets/icons/
然后,当你想在代码中访问这些资产时,你应该使用 package: 方案,后跟包名称和资产路径:
Image.asset('package:messaging_core/assets/icons/copy.svg')
或
Image.asset('package/messaging_core/assets/icons/copy.svg')
此外,请确保您已将本地包添加到父项目的 pubspec.yaml 的依赖项下,如下所示:
dependencies:
flutter:
sdk: flutter
messaging_core:
path: packages/messaging_core
最后,不要忘记在修改 pubspec.yaml 文件后运行 flutter pub get 。