如何解决为什么嵌入在现有原生 iOS 应用程序中的 Flutter 应用程序不会加载自己的资产?
我使用 Flutter 的附加应用程序文档在现有 iOS 应用程序中将小型 Flutter 应用程序作为本机模块运行。
Flutter 应用程序在 pubspec.yaml
文件夹中包含了一些来自 assets
文件夹的图像,如下所示:
assets:
- assets/
根据 Flutter 文档,这些资产与应用程序捆绑在一起。
如果我自己运行 Flutter 应用程序,它运行良好。但是当我在 iOS 中运行它时,出现此错误:
The following assertion was thrown resolving an image codec:
2021-01-11 14:41:51.204874-0800 flutter: Unable to load asset: assets/CONNECT.png
flutter: When the exception was thrown,this was the stack:
2021-01-11 14:41:51.205397-0800 flutter: #0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:227:7)
flutter: Image provider: AssetImage(bundle: null,name: "assets/CONNECT.png")
2021-01-11 14:41:51.209366-0800 flutter: Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#893a5(),name: "assets/CONNECT.png",
我找到的任何文档都在讨论在 iOS 应用程序中加载 Flutter 资产,反之亦然。但这是一个 Flutter 应用程序,它在本机 iOS 应用程序中加载自己的资产,我不确定修复方法。
有没有人以前做过这个并且知道如何解决?
解决方法
我今天遇到了同样的问题
和enum UserFlow {
case onboarding
case login
case home
}
struct ContentView: View {
@State var userFlow = UserFlow.home
var body: some View {
/// container
Group {
switch userFlow {
case .onboarding:
Text("Not Yet Implemented")
case .login:
Text("Login page")
case .home:
Text("Home page")
}
}
.animation(.default) /// also need Animation
.transition(.opacity)
/// for testing
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
userFlow = .login
}
}
}
}
解决了我的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。