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

MAUI应用中SkiaSharp加载Lottie动画不显示问题求助

MAUI中SkiaSharp实现Lottie动画不显示排查方案

1. 依赖包与初始化校验

  • 确认项目csproj中同时引用SkiaSharp.Views.Maui和SkiaSharp.Extended.UI.Controls(Lottie动画依赖SkiaSharp扩展控件包)
  • 检查MauiProgram.cs的初始化代码,需同时添加SkiaSharp及扩展的启用方法,示例:
    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp<App>()
        .UseSkiaSharp()
        .UseSkiaSharpExtended();
    
  • 确保所有SkiaSharp相关包版本完全一致,包括SkiaSharp、SkiaSharp.Views.Maui、SkiaSharp.Extended.UI.Controls,版本不兼容会导致渲染异常

2. 硬编码实现细节检查

  • 验证Lottie动画文件的嵌入设置:将json文件的生成操作设为Embedded resource
  • 检查资源加载路径是否正确,需遵循「项目命名空间+文件夹层级」的格式,示例:
    var assembly = typeof(YourPage).Assembly;
    using var stream = assembly.GetManifestResourceStream("YourAppName.Resources.Anims.your_animation.json");
    
  • 用Lottie在线预览工具确认json文件本身无损坏,排除动画源文件问题

3. 布局与控件属性排查

  • 确认SKLottieView的WidthRequest、HeightRequest设置合理,或在父布局(如Grid)中配置了有效的尺寸约束
  • 检查控件的IsVisible属性为true、Opacity为1,避免被隐藏
  • 排查父布局是否存在裁剪、溢出隐藏等设置,导致动画内容被遮挡

4. 调试日志定位问题

  • 在资源加载代码中添加日志,确认流是否成功获取:
    if (stream == null)
    {
        Console.WriteLine("Lottie资源流加载失败,路径错误或文件未嵌入");
    }
    
  • 监听SKLottieView的AnimationFailed事件,捕获具体错误信息:
    lottieView.AnimationFailed += (s, e) =>
    {
        Console.WriteLine($"Lottie渲染失败:{e.Exception.Message}");
    };
    

内容的提问来源于stack exchange,提问作者Lass

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:48:16