FFImageLoading вызывает исключение в Android с ошибкой: System.TypeLoadException: не удалось загрузить список переопределений метода из-за того, что метод не найден:

#c# #xaml #xamarin

#c# #xaml #xamarin

Вопрос:

Я только начал использовать FFImageLoading для кроссплатформенного проекта Xamarin, и файл Android MainActivity.cs выдает необработанное исключение:

Система.TypeLoadException: не удалось загрузить список переопределений метода из-за того, что метод не найден: void
Xamarin.Формы.Платформа.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler`1)

Я уже много раз смотрел на это и не понимаю, что именно здесь делать. Вот версии, с которыми я работаю:

  • Xamarin.Forms v3.6.0.264807
  • Xamarin.FFImageLoading v2.4.4.859
  • Xamarin.Загрузка FFImageLoading.Forms v2.4.4.859

Я понимаю, что версии должны быть правильными, чтобы устранить эту проблему.

Я бы добавил больше, но у меня нет часов, чтобы выяснить, как правильно использовать этот веб-сайт. Я продолжаю получать ошибки о том, что мой код не обозначен 4 пробелами (когда это, очевидно, было!!!!!!!!!!!!!). Я просто пытаюсь успешно ответить на этот вопрос.

Комментарии:

1. Я правильно заполнил все поля! Я знаю, потому что я взял тайм-аут, чтобы убедиться! Интересно, почему это выглядит как ******* выше!!!!!!!!

Ответ №1:

Обновить

Эта проблема была решена в версии 2.4.6.929. Если вы столкнулись с этой ошибкой, пожалуйста, обновите Xamarin Forms и FFImageLoading.


Оригинальный ответ

Существует проблема с используемой вами версией FFImageLoading (v2.4.4.859) и Xamarin Forms версии 3.6 (ну, версий 3.4, 3.5 и 3.6).

Вы можете просмотреть проблему в их исключении инициализации на github с последней версией Xamarin.Формы 3.4 / 3.6. В предварительной версии FFImageLoading (v2.4.5.870-pre) есть исправление.

Единственными исправлениями, о которых я знаю на данный момент, являются:

  1. Понизьте загрузку FFImageLoading до предыдущей версии (2.4.3.840)
  2. Понизьте рейтинг форм Xamarin
  3. Используйте предварительную версию FFImageLoading (версия v2.4.5.870-pre или версия v2.4.5.880-pre см. Обновление)

Имейте в виду, что предварительная версия любого программного обеспечения может быть нестабильной и все еще может находиться в разработке. Я бы не рекомендовал использовать предварительные версии в производственной среде.


Обновить

Пользователь (PureWeen) опубликовал на странице проблем:

https://www.nuget.org/packages/Xamarin .Загрузка FFImageLoading / 2.4.4.859

  • несовместимо с последними версиями 3.4, 3.5 и 3.6, 4.0 pre (*)

https://www.nuget.org/packages/Xamarin .FFImageLoading / 2.4.4.859 и все версии 2.4.5 до https://www.nuget.org/packages/Xamarin .FFImageLoading / 2.4.5.880-pre совместимы с:


https://www.nuget.org/packages/Xamarin .FFImageLoading / 2.4.5.880-pre

  • совместим с последними версиями 3.4, 3.5 и 3.6

https://www.nuget.org/packages/Xamarin .FFImageLoading / 2.4.5.870-pre

  • совместим с XF 3.6.0.264807

Вы можете получить предварительную версию из NuGet, установив Include prerelease флажок в VisualStudio:

введите описание изображения здесь

Комментарии:

1. Ял, предварительная версия исправила проблему, большое спасибо!

2. Благодарим вас за то, что нашли время предоставить решение и обновить. Быстрый поиск привел меня сюда, и через несколько кликов все снова заработало.

Ответ №2:

Вы также можете исправить это с помощью следующего кода.

—MainActivity.cs—

  var handler = new HttpClientHandler();
            handler.ClientCertificateOptions = ClientCertificateOption.Manual;
            handler.ServerCertificateCustomValidationCallback =
                (httpRequestMessage, cert, cetChain, policyErrors) => true;

            var client = new HttpClient(handler);
            ImageService.Instance.Initialize(new Configuration
            {
                HttpClient = client
            });