Flutter包依赖不加载它自己的资产

Mat*_*jaz 2 assets flutter

我们有以下结构:

project A (hosted on private git). It has it's asset folder and is loading assets like this: Image.asset("images/Logo_png_1080x1080px.png")
project B, that uses project A as dependency
Run Code Online (Sandbox Code Playgroud)

项目 A 是一个 flutter 应用程序,可构建 ios 和 android 应用程序。它功能齐全,一切都按预期进行。

现在我们遇到的问题是项目 B。

项目 B 包含简单的入门类,它设置项目 A 正在使用的一些基本属性,并且一旦我们设法正确执行它,就会设置它自己的图标。它还将生产 ios 和 android 应用程序。

当我们启动应用程序时,没有识别到​​任何资产(图像),并且出现异常:

I/flutter ( 7290):
  Unable to load asset: images/Logo_png_1080x1080px.png
I/flutter ( 7290):
I/flutter ( 7290):
  When the exception was thrown, this was the stack:
I/flutter ( 7290): #0      PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:224:7)
I/flutter ( 7290): <asynchronous suspension>
I/flutter ( 7290): #1      AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:675:14)
I/flutter ( 7290): <asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)

公共规范内容:

name: project_b
description: A new Flutter project.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  project_a:
    git:
      url: https://***:***@private.git.repo.com/scm/repo/git/ProjectA
      ref: master
      path: mobile_app

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^1.0.0

flutter:
  uses-material-design: true
#  assets:
#    - packages/project_a/images/
Run Code Online (Sandbox Code Playgroud)

通常,如果依赖项有自己的资产,它应该自行处理它们。但是因为我们必须使用 git 项目,所以它可能有点不同,因为它不是自己打包的,而是与当前项目(项目 B)一起编译的。这就是它找不到资产的原因。

解决这个问题的最佳和最正确的方法是什么?谢谢!

Mil*_*adi 6

1-在flutter包的lib文件夹同级创建assets文件夹并放置你的字体或图像

在此输入图像描述

2-在 pubspec.yaml 中添加您的资产路径

颤振:资产:-资产/svg/

创建widget时设置3个包名

在此输入图像描述