FFImageLoading 在 Android 中引发异常并出现错误:System.TypeLoadException:由于找不到方法,无法加载方法覆盖列表:

Posted

技术标签:

【中文标题】FFImageLoading 在 Android 中引发异常并出现错误:System.TypeLoadException:由于找不到方法,无法加载方法覆盖列表:【英文标题】:FFImageLoading is throwing exception in Android with error: System.TypeLoadException: Could not load list of method overrides due to Method not found: 【发布时间】:2019-08-15 22:46:39 【问题描述】:

我刚开始为 Xamarin 跨平台项目使用 FFImageLoading,android MainActivity.cs 文件抛出未处理的异常:

System.TypeLoadException:由于无法加载方法覆盖列表 找不到方法:void Xamarin.Forms.Platform.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】:

更新

此问题已在发行版 2.4.6.929 中得到解决。如果您遇到此错误,请更新 Xamarin Forms 和 FFImageLoading。


原答案

您使用的 FFImageLoading 版本 (v2.4.4.859) 和 Xamarin Forms 版本 3.6(嗯,版本 3.4、3.5 和 3.6)存在问题。

您可以在他们的 github Init exception with latest Xamarin.Forms 3.4 / 3.6 上查看该问题。 FFImageLoading (v2.4.5.870-pre) 的预发布版本中有一个修复。

目前我知道的唯一修复是:

    将 FFImageLoading 降级到以前的版本 (2.4.3.840) 降级 Xamarin 表单 使用预发布版本 FFImageLoading(v2.4.5.870-pre 或 v2.4.5.880-pre 查看更新)

请注意,任何软件的预发布版本都可能不稳定,并且可能仍在开发中。 我不建议在生产环境中使用预发布版本。


更新

一位用户 (PureWeen) 在issues 页面上发帖:

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.Forms/3.6.0.220655 https://www.nuget.org/packages/Xamarin.Forms/3.5.0.169047 https://www.nuget.org/packages/Xamarin.Forms/3.4.0.1029999

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 兼容

您可以通过在 VisualStudio 中选中 Include prerelease 复选框从 NuGet 获取预发布版本:

【讨论】:

Yal,预发布版本解决了这个问题,非常感谢! 感谢您抽出宝贵时间提供解决方案和更新。快速搜索将我带到了这里,点击几下后,一切又恢复了。【参考方案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
            );

【讨论】:

以上是关于FFImageLoading 在 Android 中引发异常并出现错误:System.TypeLoadException:由于找不到方法,无法加载方法覆盖列表:的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms - 在点击手势识别器上添加调用对象作为参数

xamarin表单 - 使用c#计算出图像源的尺寸

在 Android 4 中启用 android:largeHeap,在 Android 2.3 中禁用它

Android - 在 Android 1.6 中开发的应用程序可以在 Android 2.0 中运行吗?

如何在Android中启动JAVA程序

android中怎么设置组件在LinearLayout中居中