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
相关产品推荐
相关产品推荐

