我承認我是Xamarin和跨平臺開發新手,所以如果這似乎是一個微不足道的問題,我很抱歉,但我一直試圖深入到底現在幾個晚上。Xamarin項目未能在Android或Windows中找到SkiaSharp
我有一個基本的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)
我得到這個例外在x86,x64和爲Windows 8.1版本的任何CPU的配置,以及Android版本。
如果我運行它的UWP項目,它完美的作品。
相關項目結構:
- MyProj.XMForms(便攜式) - PCL包含芯Xamarin.Forms應用,用的MainPage含有具有MyView的一個幀一個StackLayout和MyView的含有網格與SKCanvasView 。
- MyProj.Windows(Windows 8.1) - 包裝 - 只包含一個空應用程序和一個加載MyProj.XMForms應用程序的MainPage。
- MyProj.UWP(通用Windows) - 包裝 - 只包含一個空應用程序和一個加載MyProj.XMForms應用程序的MainPage。
- MyProj.Droid(Android) - 包裝 - 只包含加載MyProj.XMForms應用程序的MainActivity。
所有項目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 FormsSample交叉檢查Android項目 - 我肯定已經有了完全相同的一組Nugets。 –
對於瞭解Windows 8的限制很有用 - 我想知道爲什麼當Xamarin Forms支持它時沒有一個樣本。因爲我打算爲普通Windows計算機使用本地Windows表單,所以對我來說確實是一個學術問題,但是這讓我感到困擾...... –