2017-02-01 3 views
2

Réception d'un InvalidCastException dans LoadApplication(new App());. J'ai ajouté SkiaSharp et SkiaSharp.Views.Forms dans PCL et Android. Il a également ajouté automatiquement le package SkiaSharp.Views au projet Android.SkiaSharp non valide Cast Exception

J'ai supprimé tout le code complexe et laissé cette partie dans mon fichier XAML

<ContentView 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"  
    x:Class="SkiaSharpRemote.MediaControlView"> 
    <ContentView.Content> 
     <!--<skia:SKCanvasView 
      x:Name="canvas" 
      VerticalOptions="Fill" 
      HorizontalOptions="Fill" 
      PaintSurface="Canvas_PaintSurface"> 
     </skia:SKCanvasView>--> 
    </ContentView.Content> 
</ContentView> 

L'application chargée après que je commentais la ligne skCanvasView. Si je le décommente, l'exception suivante est levée.

au (wrapper castclass) System.Object: __ castclass_with_cache (objet, IntPtr, IntPtr) à Xamarin.Forms.Registrar 1[TRegistrable].GetHandler (System.Type type) [0x0001b] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\Registrar.cs:24 at Xamarin.Forms.Registrar 1 [TRegistrable] .GetHandler [Tout] (type System.Type) [0x00000 ] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Core \ Registrar.cs: 29 à Xamarin.Forms.Platform.Android.Platform.CreateRenderer (élément Xamarin.Forms.VisualElement) [0x00006] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ Platform.cs: 288 à Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (Xa vue marin.Forms.VisualElement, Xamarin.Forms.Platform.Android.IVisualElementRenderer oldRenderer, piscine Xamarin.Forms.Platform.Android.RendererPool, System.Boolean sameChildren) [0x00023] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementPackager.cs: 74 à Xamarin.Forms.Platform.Android.VisualElementPackager.SetElement [0x00104] dans C (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement) : \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementPackager.cs: 207 à Xamarin.Forms.Platform.Android.VisualElementPackager.Load() [0x00000] dans C: \ BuildAgent2 \ work \ ca3766 cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementPackager.cs: 58 à Xamarin.Forms.Platform.Android.VisualElementRenderer 1[TElement].SetPackager (Xamarin.Forms.Platform.Android.VisualElementPackager packager) [0x00007] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:337 at Xamarin.Forms.Platform.Android.VisualElementRenderer 1 [TElement] .SetElement (élément TElement) [0x00111] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementRenderer.cs: 196 à Xamarin.Forms.Platform.Android.VisualElementRenderer 1[TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement element) [0x00027] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:129 at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element) [0x0001f] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\Platform.cs:289 at Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (Xamarin.Forms.VisualElement view, Xamarin.Forms.Platform.Android.IVisualElementRenderer oldRenderer, Xamarin.Forms.Platform.Android.RendererPool pool, System.Boolean sameChildren) [0x00023] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:74 at Xamarin.Forms.Platform.Android.VisualElementPackager.SetElement (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement) [0x00104] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:207 at Xamarin.Forms.Platform.Android.VisualElementPackager.Load() [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:58 at Xamarin.Forms.Platform.Android.VisualElementRenderer 1 [TElement] .SetPackager (Xamarin.Forms.Platform.Android.VisualElementPackager emballeur) [ 0x00007] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementRenderer.cs: 337 à Xamarin.Forms.Platform.Android.VisualElementRenderer 1[TElement].SetElement (TElement element) [0x00111] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:196 at Xamarin.Forms.Platform.Android.VisualElementRenderer 1 [TElement] .Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (élément Xamarin.Forms.VisualElement) [0x00027] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementRenderer. cs: 129 à Xamarin.Forms.Platform.Android.Platform.CreateRenderer (élément Xamarin.Forms.VisualElement) [0x0001f] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ Platform.cs : 289 à Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (vue Xamarin.Forms.VisualElement, Xamarin.Forms.Platform.Android.IVisualElementRenderer oldRenderer, piscine Xamarin.Forms.Platform.Android.RendererPool, système. Booléen sameChildr en) [0x00023] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementPackager.cs: 74 à Xamarin.Forms.Platform.Android.VisualElementPackager.SetElement (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement) [0x00104] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementPackager.cs: 207 à Xamarin.Forms.Platform.Android.VisualElementPackager.Load() [0x00000] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin. Forms.Platform.Android \ VisualElementPackager.cs: 58 à Xamarin.Forms.Platform.Android.VisualElementRenderer 1[TElement].SetPackager (Xamarin.Forms.Platform.Android.VisualElementPackager packager) [0x00007] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:337 at Xamarin.Forms.Platform.Android.VisualElementRenderer 1 [TElement] .SetElement (élément TElement) [0x00111] dans C: \ BuildAgent2 \ work \ ca3766c fc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementRenderer.cs: 196 à Xamarin.Forms.Platform.Android.VisualElementRenderer`1 [TElement] .Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms. élément VisualElement) [0x00027] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ VisualElementRenderer.cs: 129 à Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement élément) [0x0001f] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ Platform.cs: 289 à Xamarin.Forms.Platform.Android.AppCompat.Platform.AddChild (Xamarin.Forms. Page de page, mise en page System.Boolean) [0x00015] dans C: \ BuildAgen t2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ AppCompat \ Platform.cs: 250 à Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newroot) [0x00089] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ AppCompat \ Platform.cs: 239 à Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (page Xamarin.Forms.Page) [0x0009b] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ AppCompat \ FormsAppCompatActivity.cs: 374 à Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage() [0x00000] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ AppCompat \ FormsAppCompatActi vity.cs: 444 à Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (application Xamarin.Forms.Application) [0x00183] dans C: \ BuildAgent2 \ work \ ca3766cfc22354a1 \ \ Xamarin.Forms.Platform.Android AppCompat \ FormsAppCompatActivity.cs: 135 à SkiaSharpRemote.Droid.MainActivity.OnCreate (faisceau Android.OS.Bundle ) [0x0002e] dans /Users/simonlam/Desktop/Samples/Xamarin/SkiaRemote/SkiaSharpRemote/Droid/MainActivity.cs : 25 à Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr JNIEnv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] dans < 27c17fe440cf491ba8255bcefade6e02>: 0 à (wrapper méthode dynamique) System.Object: a050e315-9322-4894-b9ce-8db88ad775ab (IntPtr, IntPtr, IntPtr)

L'erreur ne m'a pas dit grand-chose, je seulement voir c'est une sorte d'erreur de casting.

J'ai un autre projet qui a également utilisé skiasharp. Je suis fondamentalement la même route mais pour ce projet ça n'a pas marché.

+0

Le début du message d'exception est manquant – NineBerry

+1

Il travaille maintenant .. Peut-être que je dois nettoyer le projet Android et à nouveau reconstruire ... – LittleFunny

Répondre

4

Effectuez les opérations suivantes:

  1. Ajouter SkiaSharp.Views.Forms NuGet à tous les projets! (Le PCL/Shared, Android et iOS projet.)
  2. Ensuite, nettoyer et reconstruire votre solution.

qui résoudra votre problème.