如何在特定文件夹中显示Lottie JSON?当前代码无法正常运行
解决SKLottieView无法加载Lottie动画的问题
以下是几个排查和修复的方向:
校验资源路径准确性
确保resource://AppName.Resources.Raw.MyAudios.Effects.userlistening2.json里的命名空间和项目文件夹结构完全匹配:- 确认文件实际存放路径是
Resources/Raw/MyAudios/Effects/userlistening2.json - 注意大小写,iOS和macOS平台对文件名/路径大小写敏感,必须和代码里的完全一致
- 确认文件实际存放路径是
确认Build Action设置
右键该json文件,检查属性里的Build Action是否确实是BundleResource(注意拼写大小写),嵌套文件夹下的文件也需要单独确认这个设置,避免继承错误。检查SkiaSharp初始化与依赖
确认在MauiProgram.cs中已添加SkiaSharp的初始化代码:builder.UseSkiaSharp();同时确保安装了正确的NuGet包:
SkiaSharp.Views.Maui.Controls和SkiaSharp.Extended.UI.Maui,且版本一致。简化路径测试
先将json文件移到Resources/Raw根目录,修改Source为resource://AppName.Resources.Raw.userlistening2.json,测试是否能正常加载,排除嵌套路径的解析问题。验证Lottie文件有效性
用Lottie官方预览工具打开该json文件,确认文件本身没有损坏、是有效的Lottie动画格式。添加错误捕获排查
给SKLottieView绑定Failed事件,捕获具体错误信息:<skia:SKLottieView Grid.Row="0" Source="resource://AppName.Resources.Raw.MyAudios.Effects.userlistening2.json" RepeatMode="Reverse" HorizontalOptions="End" RepeatCount="-1" HeightRequest="30" WidthRequest="30" Failed="SKLottieView_Failed"/>后台代码:
private void SKLottieView_Failed(object sender, SkiaSharp.Extended.UI.LottieFailedEventArgs e) { System.Diagnostics.Debug.WriteLine($"加载失败原因: {e.Exception.Message}"); }通过输出的异常信息,可以精准定位问题(比如路径错误、文件损坏等)。
内容的提问来源于stack exchange,提问作者hugo
相关产品推荐
相关产品推荐

