【问题标题】:System.MissingMethodException: Method 'System.Collections.Generic.Dictionary`2.GetValueOrDefault' not foundSystem.MissingMethodException:找不到方法“System.Collections.Generic.Dictionary`2.GetValueOrDefault”
【发布时间】:2018-07-15 08:13:18
【问题描述】:

我正在开发 Xamarin.droid 应用程序,该应用程序运行良好,直到昨天。但是突然,当我尝试运行代码时,一旦项目开始在设备上运行,我就会得到 运行时异常

System.MissingMethodException:找不到方法“System.Collections.Generic.Dictionary`2.GetValueOrDefault”。

我删除了所有代码更改并让它处于以前的工作状态。
清理并重建了项目。
删除了 bin 和 obj 文件夹。
链接器属性已设置为“无”。
删除了不必要的软件包。
重新启动 Visual Studio。重新启动了系统。但仍然没有用。

使用 Visual Studio Enterprise 15.5.7。

感谢任何帮助...

已编辑: 在我的情况下它得到了解决。 我从 VS 运行应用程序,它抛出异常。然后我打开应用程序设置并清除缓存/数据。然后打开了应用程序。它按预期工作。然后从 VS 运行应用程序。然后它也可以在没有抛出异常的情况下工作。但不知道之前到底出了什么问题。

【问题讨论】:

  • 在调试器中运行您的代码。它会告诉你问题出在哪里。
  • 你的意思是在调试模式?我就是这样尝试的。
  • 是的,它会停在发生异常的位置,所以看看那里发生了什么。如果您找不到任何东西,请查看异常的调用堆栈跟踪以获取更多信息。如果您仍然找不到原因,请复制完整的调用堆栈跟踪并将其附加到您的问题中,以便我们了解更多详细信息。
  • 问题是这个异常发生在NuGet包里面。所以调试器不会在我的程序中的任何地方停止,并且在异常堆栈跟踪中也只有这一行。之前运行的是相同的代码。即使没有代码更改,它现在也无法正常工作。
  • 您说您删除了不必要的软件包...您是否尝试过删除必要的软件包并使用 nuget 重新安装它们?

标签: c# .net xamarin exception xamarin.droid


【解决方案1】:

大多数时候,我在使用 Xamarin 时看到此异常,它与链接器配置和编译器优化有关。

【讨论】:

  • 您能告诉我任何需要更改的配置吗?
  • 转到项目属性-> Android 选项(不记得确切的标题)-> 链接器。将其设置为 none 以查看它是否有效。您也可以查看此链接docs.microsoft.com/en-us/xamarin/android/deploy-test/linker
  • 问题是“GetValueOrDefault”方法开始从您的代码中删除作为输出优化。您使用的是哪个 Xamarin Android 版本? GetValueOrDefault 是否在该版本中实现?
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 2020-11-25
  • 1970-01-01
相关资源
最近更新 更多