我的应用在 Windows 上跑的好好的,放在 Linux 上一运行就炸掉了,异常内容如下
Unhandled exception. System.TypeInitializationException: The type initializer for'SkiaSharp.SKColorSpace' threw an exception.---> System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory
at SkiaSharp.SkiaApi.sk_colorspace_new_srgb()
at SkiaSharp.SKColorSpace..cctor()--- End of inner exception stack trace ---
at SkiaSharp.SKColorSpace.CreateSrgb()
at Program.<Main>$(String[] args)ind:\lindexi\Code\SkiaSharp\SkiaSharp\KebeninegeeWaljelluhi\KebeninegeeWaljelluhi\Program.cs:line 5
原因是 Linux 的版本众多,大家都很喜欢自己定义,这让 SkiaSharp 不知道包含哪个版本才是能让大家都开心的,如官方文档 所讲的故事
解决的方法是再安装上 SkiaSharp.NativeAssets.Linux 或 SkiaSharp.NativeAssets.Linux.NoDependencies 库即可
如在 csproj 上添加以下代码用来安装
<ItemGroup><PackageReference Include="SkiaSharp" Version="2.88.0"/><PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.0"/></ItemGroup>
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!