我正在开发一个包含一些资产文件的flutter软件包。我像往常一样在pubsepc.yaml中提到了必需的资产
assets:
- assets/abc.xyz
并将包上传到https://pub.dartlang.org/。
之后,我创建了一个flutter应用程序,并将开发的程序包导入到pubspec.yaml中。
dependencies:
flutter:
sdk: flutter
my_developed_package: ^0.0.1
现在,除了我的资产不存在以外,一切都正常。 我在应用程序中放入了相同的资产,但在pubsepc.yaml中未提及其工作原理。我无法理解,如何将这些资产添加到包装中以便它们自动加载?
答案 0 :(得分:2)
很抱歉无法提供最新答案,但是以下方法帮助我将资产包括在插件开发中。
我将自己的资产放在lib
文件夹下,例如my_plugin/lib/assets
,并放在pubspec.yaml
之下。
assets:
- packages/my_plugin/assets/asset_name
# Be careful about indentation
它已经添加了插件,然后我用这样的路径访问它们
packages/my_plugin/assets/asset_name
,例如
File myAsset = File("packages/my_plugin/assets/asset_name");
通过这种方法,我不仅可以从图片中获得插件的任何资产。
有关完整示例,您可以检查我的插件here。
答案 1 :(得分:1)
引用from
如果在服务器的pubspec.yaml文件中指定了所需资产 包,它会与应用程序自动捆绑在一起。在 特别是,包装本身使用的资产必须在包装中指定 pubspec.yaml。
在Flutter中,您可以使用包装中的资产,这应该不是问题。唯一的事情是,您需要指定软件包并导入。例如。如果它是图像,则可以使用AssetImage
类,它是package
属性。
AssetImage('assets/abc.xyz', package: 'my_developed_package');
有关如何调用文字和其他内容的详细信息,请检查here。
答案 2 :(得分:0)
Pubspec Yaml对缩进敏感
之间有区别
assets:
- packages/my_plugin/assets/asset_name
VS
assets:
- packages/my_plugin/assets/asset_name
如果您密切注意上面两个,那么您会发现pubspec.yaml非常敏感
总是写
assets:
-asset/yourasset/example1
行首必须有两个空格。
将资产链接添加到pubspec后,您必须运行 packages 。如果正确放置资产,它将显示退出错误,错误为0,否则将显示错误的原因。
通常,初学者会遇到这类问题。随着时间的流逝,您将找到解决此错误的方法
答案 3 :(得分:0)
要从package
依赖项加载图像,必须将package参数提供给AssetImage
。
例如,假设您的应用程序依赖于名为 my_icons 的程序包,该程序包具有以下目录结构:
.../pubspec.yaml
.../icons/heart.png
.../icons/1.5x/heart.png
.../icons/2.0x/heart.png
...etc.
要加载图像,请使用:
AssetImage('icons/heart.png', package: 'my_icons')
还应使用上述package
参数来获取包本身使用的资产。
答案 4 :(得分:0)
在Flutter包中添加资产会很困难!
只需按照以下步骤操作,您就可以开始...
步骤1:在Package的根目录中创建一个 assets 文件夹
第2步:将其添加到您的 pubspec.yaml 文件
flutter:
assets:
- assets/asset_name
# Mind the indentation
第3步:使用资产处理图像文件
AssetImage('assets/asset_name.png', package: 'your_package_name')
运行 Pub.dev 并使用Package和