System.MissingMethodException:未找到类型 SkiaSharp.Views.Forms.SKCanvasView 的默认构造函数?
System.MissingMethodException: Default constructor not found for type SkiaSharp.Views.Forms.SKCanvasView?
我正尝试在 Android 上使用 Skiasharp,但出现此异常,
可能是什么原因?
代码:
<skia:SKCanvasView x:Name="canvasView"
PaintSurface="canvasView_PaintSurface"
EnableTouchEvents="true"
VerticalOptions="FillAndExpand"
Touch="OnTouch"/>
在 C# 文件上
private void canvasView_PaintSurface(object sender,SKPaintSurfaceEventArgs args)
{
SKSurface sKSurface = args.Surface;
SKCanvas canvas = sKSurface.Canvas;
canvas.Clear(SKColors.White);
drawPerformerPlatforms.setCanvas(canvas);
scoreViewerField.runFrame();
}
好的,我找到了答案,
右键单击 Android 项目 -> 属性 -> Android 选项
找到链接并将其设置为 none。
然后重建您的项目
设置链接到 None 是一种解决方法,而不是真正的解决方案。您遇到的问题是链接器删除了对 Skia 类 的引用。您需要在链接过程中保留 Skia 库。详情请参考以下文章。
https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker
我正尝试在 Android 上使用 Skiasharp,但出现此异常, 可能是什么原因?
代码:
<skia:SKCanvasView x:Name="canvasView"
PaintSurface="canvasView_PaintSurface"
EnableTouchEvents="true"
VerticalOptions="FillAndExpand"
Touch="OnTouch"/>
在 C# 文件上
private void canvasView_PaintSurface(object sender,SKPaintSurfaceEventArgs args)
{
SKSurface sKSurface = args.Surface;
SKCanvas canvas = sKSurface.Canvas;
canvas.Clear(SKColors.White);
drawPerformerPlatforms.setCanvas(canvas);
scoreViewerField.runFrame();
}
好的,我找到了答案, 右键单击 Android 项目 -> 属性 -> Android 选项
找到链接并将其设置为 none。
然后重建您的项目
设置链接到 None 是一种解决方法,而不是真正的解决方案。您遇到的问题是链接器删除了对 Skia 类 的引用。您需要在链接过程中保留 Skia 库。详情请参考以下文章。
https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker