我们有以下结构:
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
Project 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>
Pubspec内容:
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/
通常,如果依赖项有自己的资产,它应该自己处理它们。但是因为我们必须使用git项目,所以它可能有点不同,因为它不是自己打包的,而是与当前项目(项目B)一起编译的。这就是为什么它找不到资产。
解决这个问题的最好和最正确的方法是什么?谢谢!
4条答案
按热度按时间uemypmqf1#
1-在flutter包中的lib文件夹的同一级别创建assets文件夹,并将您的字体或图像
2-在pubspec.yaml中添加您的资产路径
3-创建widget时设置包名
ktca8awb2#
我不确定flutter的两个集成项目是如何工作的,所以如果这是一个愚蠢的回应,我提前道歉,但你知道
pubspec.yaml
中的资产依赖行(最后两行)被注解掉了吗?t1rydlwq3#
hfyxw5xn4#
我可能有一个使用flutter_gen包的解决方案。我设法将其简化为在依赖包的pubspec.yaml文件中没有这种结构,在您的情况下是包A:
添加此内容后,我可以看到我的PDF文件。[这是我的用例]