1

我安装了SkiaSharpSkiaSharp.Views.Forms 当我在我的代码中使用它们时:

public MainPage()
        {
            InitializeComponent();

            SKCanvasView canvasView = new SKCanvasView();
            canvasView.PaintSurface += OnCanvasViewPaintSurface;
            Content = canvasView;

        }


void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
    {
        SKImageInfo info = args.Info;
        SKSurface surface = args.Surface;
        SKCanvas canvas = surface.Canvas;

        canvas.Clear();

        SKPaint paint = new SKPaint
        {
            Style = SKPaintStyle.Stroke,
            Color = Color.Red.ToSKColor(),
            StrokeWidth = 25
        };
        canvas.DrawCircle(info.Width / 2, info.Height / 2, 100, paint);

        paint.Style = SKPaintStyle.Fill;
        paint.Color = SKColors.Blue;
        canvas.DrawCircle(info.Width / 2, info.Height / 2, 100, paint);
    }

项目无法运行,(调试模式的橙色立即消失),没有错误。

当我注释掉上面的代码时,项目运行正常!我正在使用 Visual Studio 2017 版本 15.4.5

我尝试在 VS 2015 中打开项目,我在 Android 项目的 MainActivity 中遇到了这个异常:

LoadApplication(new App());

信息:

指定的演员表无效。

堆栈跟踪:

System.InvalidCastException:指定的强制转换无效。在 (wrapper castclass) System.Object:__castclass_with_cache (object,intptr,intptr) 在 Xamarin.Forms.Internals.Registrar1[TRegistrable].GetHandler (System.Type type) [0x0001b] 在 C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin .Forms.Core\Registrar.cs:37 在 C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core 中的 Xamarin.Forms.Internals.Registrar1[TRegistrable].GetHandler[TOut](System.Type 类型)[0x00000] \Registrar.cs:42 在 Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement 元素) [0x00006] 在 C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\Platform.cs :284 在 Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (Xamarin.Forms.VisualElement 视图,Xamarin.Forms.Platform.Android。

4

1 回答 1

0

为了工作,我必须安装SkiaSharp,SkiaSharp.ViewsSkiaSharp.Views.Forms通过 nuget 到 Android 和 iOS 项目,PCL 只需要SkiaSharpSkiaSharp.Views.Forms.

原始答案在这里: https ://forums.xamarin.com/discussion/comment/310695/#Comment_310695

于 2017-12-06T17:20:15.543 回答