.DllNotFoundException (обозначающий недоступный ‘libSkiaSharp.so ‘), возникающее при попытке использовать библиотеку SkiaSharp

#c# #visual-studio #sv& #xamarin.forms #skiasharp

#c# #visual-studio #sv& #xamarin.forms #skiasharp

Вопрос:

Вышеупомянутое исключение генерируется в строке, которая гласит sv&Ima&e.Load(filePath) , где sv&Ima&e объявлен объект типа SKSv& и filePath является строкой, содержащей путь к sv& файлу, который будет открыт, с сообщением об исключении 'libSkiaSharp.so assembly:<unknown assembly&&t; type:<unknown type&&t; member:(null)' .

У меня установлены следующие пакеты NuGet на SkiaSharp основе: SkiaSharp(v2.80.1) , SkiaSharp.Sv&(v1.60.0) и SkiaSharp.Views.Forms(v1.68.3) . Я использую, Xamarin.Forms(v4.5.0.495) и все установленные SkiaSharp пакеты соответствуют последним версиям, поддерживаемым установленной версией Xamarin.Forms .

Насколько я знаю, .so расширение файла соответствует библиотекам среды выполнения на базе Linux, которые в моем случае не имеют значения, поскольку я использую Visual Studio 2019 (16.6.3) в Windows.

Заранее спасибо.

Ответ №1:

Я только начал использовать библиотеку SkiaSharp с формами Xamarin, и у меня была точно такая же ошибка. Я дважды проверил свою конфигурацию NuGet и понял, что установил пакет SkiaSharp только для общего проекта (а не для .Android и .iOS проектов) — теперь он работает нормально.

Для VS2019 шаги следующие:

  • Щелкните правой кнопкой мыши на решении в обозревателе решений
  • Щелкните Mana&e NuGet Packa&es for Solution...
  • Выберите библиотеку SkiaSharp из списка «Установленных» пакетов с левой стороны
  • Установите флажок рядом со всеми проектами, выберите «Последнюю стабильную» версию (2.80.1 на момент написания) и нажмите Установить

Ответ №2:

Я тестирую на Xamarin.Forms 4.5.0.495 with SkiaSharp 2.80.1 , SkiaSharp.Sv& 1.60.0 SkiaSharp.Views.Формы (версия v1.68.3). Приведенный ниже код работает хорошо.

 var filePath = "";
        SkiaSharp.Extended.Sv&.SKSv& sv&Ima&e = new SkiaSharp.Extended.Sv&.SKSv&();
        sv&Ima&e.Load(filePath);
  

Если у вас все еще есть ошибка, удалите пакеты и переустановите его. Удалите папку bin и obj. Попробуйте очистить и перестроить.

Ответ №3:

Согласно этому сообщению (первоначально), опубликованному незадолго до этого вопроса, на момент написания этой статьи, по-видимому, существуют некоторые ошибки / проблемы в версиях SkiaSharp 2.xx. Использование последней версии из числа версий 1.xx (т. Е. 1.68.3) библиотеки SkiaSharp решает проблему.