[英]Xamarin project failing to find SkiaSharp in Android or Windows
我承认我是 Xamarin 和跨平台开发的新手,所以如果这似乎是一个微不足道的问题,我深表歉意,但我已经几个晚上一直试图深入了解它。
我有一个基本的 Xamarin Forms 应用程序,它在 Windows 8.1、Windows UWP 和 Android 中运行。 它使用 SkiaSharp 来制作一些基本图形(基于 Skia 示例)。
它在所有三个平台上都运行,但我必须删除 Xamarin 包并将其重新添加到项目中,而且我无法再让 SkiaSharp 在 Windows 或 Android 中正常运行。 我得到一个 BadImageFormatException:
Additional information: Could not load file or assembly 'SkiaSharp, Version=1.56.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)
我在 Windows 8.1 版本和 Android 版本的 x86、x64 和 Any CPU 配置中遇到此异常。
如果我在 UWP 项目中运行它,它会完美运行。
相关项目结构:
所有项目 NuGet 包都有 Xamarin.Forms 2.3.3.180、SkiaSharp 1.56.0 和 SkiaSharp.Views.Forms 1.56.0。 MyProj.Droid 也有 SkiaSharp.Views(其他人都不会接受它)。
我发现了https://github.com/mono/SkiaSharp/issues/190并将<ShouldIncludeNativeSkiaSharp>true</ShouldIncludeNativeSkiaSharp>
到 csproj 而没有任何区别。
我尝试删除并重新添加 SkiSharp NuGet 包。
我错过了什么?
谢谢,
伊恩
如果您查看异常消息,则有以下行:
不应为执行加载引用程序集。
这意味着您尚未将 SkiaSharp NuGets 安装到应用程序项目中。 确保所有应用程序都安装了SkiaSharp
、 SkiaSharp.Views
和SkiaSharp.Views.Forms
NuGets。 核心项目只需要SkiaSharp
和SkiaSharp.Views.Forms
NuGets。
此外,由于 Skia 的限制,目前不支持 Windows 8.x: https : //github.com/mono/SkiaSharp/issues/20
好的,我通过从 SkiaSharp FormsSample 获取 Android 项目并替换对
LoadApplication(new SkiaSharpSample.FormsSample.Platform.App());
和
LoadApplication(new MyPortable.XamarinForms.App());
我的原始项目肯定包含与此相同的所有 NuGet,我还没有确定它们的主要区别,这意味着该项目有效而我的无效,但至少我现在有一个适用于 Android 和 UWP 的解决方案.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.