You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在特定文件夹中显示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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:15:04