Xamarin Live Player 在加载位图时崩溃,但通过 USB 连接运行良好

Xamarin Live Player crashes when loading a bitmap, but it runs fine via USB connection

我一直在关注将 SkiaSharp 与 Xamarin Forms 结合使用的示例,尤其是关于使用位图的部分。我在 Microsoft Visual Studio 2017 版本 15.9.11 中执行此操作。我目前只针对 Android。

此页面 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/basics/bitmaps 有一个关于加载位图资源的部分,其中位图是项目中的嵌入图像资源。

因此,我们添加图像并使其键入 'embedded resource'

然后是 运行 示例代码,用于简单地在 canvas 上显示图像。

string resourceID = "SkiaTest.Media.monkey.png";
Assembly assembly = GetType().GetTypeInfo().Assembly;

using (Stream stream = assembly.GetManifestResourceStream(resourceID))
{
    resourceBitmap = SKBitmap.Decode(stream);
}

一切都非常简单,如果我 运行 我的 phone 上的代码如果它以标准方式(索尼 Z5)通过 USB 连接,那么它工作正常所以列表中的第二个在这里,不是玩家:

这里是通过 USB 工作的:

但是,如果我尝试使用 Xamarin Live Player(上面列表中的第一个),那么它会在这一行崩溃:

using (Stream stream = assembly.GetManifestResourceStream(resourceID))

请注意,如果我不尝试加载位图,应用程序 运行 在 Live Player 中没有问题,只有那一行触发了崩溃,并且仅在 Live Player 中。

所以我想知道是否有人知道是什么导致 Live Player 无法解决此问题?资源是否没有被复制到 phone? Live Player不支持这种activity吗?

您遇到此问题的原因是 Xamarin Live 播放器尚不支持嵌入式资源,这导致了此异常。

可以在 Troubleshooting Xamarin Live Player 文档中找到更多详细信息。