SWIFT UI LOTTIE:线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
SWIFT UI LOTTIE : Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
我正在尝试使用 Lottie 和 SwiftUI 实现动画视图。
这是我的代码:
import SwiftUI
import Lottie
struct ContentView: View {
var body: some View {
AnimationsView()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct AnimationsView : UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<AnimationsView>) ->
AnimationView {
let aniView = AnimationView()
let animation = Animation.named("Switch", subdirectory: "TestAnimations")
aniView.animation = animation
aniView.play()
return aniView
}
func updateUIView(_ uiView: AnimationView, context:
UIViewRepresentableContext<AnimationsView>) {
}
}
我已将 Lottie 的最新版本添加为 Swift 包依赖项。
SwiftUI 中的预览显示动画,在此状态下一切正常。我没有使用情节提要它应该打开视图和里面的 lottie 动画。
当我 运行 应用程序时,应用程序崩溃并且我有此消息代码:线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
据我所知,有些东西没有初始化,return 值为 null ...我正在尝试做与本教程中相同的事情:https://www.youtube.com/watch?v=iuEqGyBYaE4
怎么了?
有一个变通方法,就是在应用的目标中将死代码剥离设置为 no
DEAD_CODE_STRIPPING = NO
同样,您可能还需要更改从捆绑包访问 lottie 文件的方式。
struct AnimationsView: UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<AnimationsView>) -> AnimationView {
let aniView = AnimationView()
// its always a good idea to check that the file exists and throw an error if it doesn't.
guard let animation = Animation.named("Switch", bundle: .main) else {
fatalError("Couldn't load animation")
}
aniView.animation = animation
aniView.loopMode = .repeat(10.0)
return aniView
}
func updateUIView(_ uiView: AnimationsView.UIViewType, context: UIViewRepresentableContext<AnimationsView>) {
}
}
我正在尝试使用 Lottie 和 SwiftUI 实现动画视图。
这是我的代码:
import SwiftUI
import Lottie
struct ContentView: View {
var body: some View {
AnimationsView()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct AnimationsView : UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<AnimationsView>) ->
AnimationView {
let aniView = AnimationView()
let animation = Animation.named("Switch", subdirectory: "TestAnimations")
aniView.animation = animation
aniView.play()
return aniView
}
func updateUIView(_ uiView: AnimationView, context:
UIViewRepresentableContext<AnimationsView>) {
}
}
我已将 Lottie 的最新版本添加为 Swift 包依赖项。 SwiftUI 中的预览显示动画,在此状态下一切正常。我没有使用情节提要它应该打开视图和里面的 lottie 动画。
当我 运行 应用程序时,应用程序崩溃并且我有此消息代码:线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
据我所知,有些东西没有初始化,return 值为 null ...我正在尝试做与本教程中相同的事情:https://www.youtube.com/watch?v=iuEqGyBYaE4
怎么了?
有一个变通方法,就是在应用的目标中将死代码剥离设置为 no
DEAD_CODE_STRIPPING = NO
同样,您可能还需要更改从捆绑包访问 lottie 文件的方式。
struct AnimationsView: UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<AnimationsView>) -> AnimationView {
let aniView = AnimationView()
// its always a good idea to check that the file exists and throw an error if it doesn't.
guard let animation = Animation.named("Switch", bundle: .main) else {
fatalError("Couldn't load animation")
}
aniView.animation = animation
aniView.loopMode = .repeat(10.0)
return aniView
}
func updateUIView(_ uiView: AnimationsView.UIViewType, context: UIViewRepresentableContext<AnimationsView>) {
}
}