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

Amazon Linux 2023与SkiaSharp兼容性问题求助

Amazon Linux 2023与SkiaSharp兼容性问题求助

各位大佬好!我最近碰到个特别头疼的兼容性问题,折腾好几天没搞定,特意来这儿求助!

先跟大家说下我的项目背景:

  • 项目是基于**.NET 6 MVC**开发的,核心用SkiaSharp做图片压缩处理
  • 安装的SkiaSharp相关包版本全是2.88.8:SkiaSharp、SkiaSharp.NativeAssets.Linux、SkiaSharp.NativeAssets.Linux.NoDependencies
  • 核心压缩方法的代码大概是这样的(部分代码被截断):
public void CompressPicAndDelOrg(string source, string target, decimal maxWidth, int quality, ref string lsReturnbase64)
 {
     try
     {
         var provider = new FileExtensionContentTypeProvider();
         if (!provider.TryGetContentType(source, out string? mimeType)) mimeType = "application/octet-stream";

         using (var file = System.IO.File.OpenRead(source))
         using (var fs = new SKManagedStream(file))
         using (var original = SKBitmap.Decode(fs))
         {
             // 图片压缩逻辑(部分代码省略)
         }
     }
     catch (Exception ex)
     {
         // 异常处理逻辑
     }
 }

现在的问题是:这个项目在VMware里的Ubuntu 22.04上跑完全正常,图片压缩功能毫无问题,但部署到Amazon Linux 2023之后,一执行图片压缩代码就直接报错:

The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception

我自己查了文件路径、运行权限这些基础项,都没问题,但就是卡在这里。想请教下有没有大佬碰到过类似情况?或者有什么排查和解决的思路?

我自己也整理了几个可能的方向,也想请大家帮忙把关:

  • 补全系统依赖库:Amazon Linux 2023的系统库版本和Ubuntu 22.04差异不小,会不会是SkiaSharp依赖的底层库缺失了?比如libfontconfig、libfreetype这些,打算用这条命令试试安装:
    sudo dnf install fontconfig freetype harfbuzz
    
  • 调整NativeAssets包:会不会是SkiaSharp.NativeAssets.Linux和Amazon Linux 2023不兼容?打算移除这个包,只保留SkiaSharp.NativeAssets.Linux.NoDependencies——毕竟这个包自带了独立编译的依赖库,不依赖系统自带的
  • 升级SkiaSharp版本:现在用的2.88.8是比较旧的版本了,说不定新版本修复了对Amazon Linux 2023的兼容性问题,打算升级到最新稳定版试试
  • 深挖内部异常:这个类型初始化异常一般都有嵌套的内部异常,我打算在catch块里把内部异常的详细信息打出来,这样应该能精准定位到底是哪个环节炸了

备注:内容来源于stack exchange,提问作者TS MP

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 12:59:28