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 - 在点击手势识别器上添加调用对象作为参数
在 Android 4 中启用 android:largeHeap,在 Android 2.3 中禁用它