Mono.Linker.MarkException:错误处理方法:'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManage
Posted
技术标签:
【中文标题】Mono.Linker.MarkException:错误处理方法:\'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManager【英文标题】:Mono.Linker.MarkException: Error processing method: 'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManagerMono.Linker.MarkException:错误处理方法:'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManager 【发布时间】:2021-06-14 15:05:11 【问题描述】:我正在尝试调试我的 Xamarin 项目。框架和所有软件包都是最新的。在 ios 中它可以工作,但在 android 中不行。我该如何解决这个问题:
Mono.Linker.MarkException: Error processing method: 'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManager::n_OnInitializeAccessibilityNodeInfo_Landroidx_recyclerview_widget_RecyclerView_Recycler_Landroidx_recyclerview_widget_RecyclerView_State_Landroidx_core_view_accessibility_AccessibilityNodeInfoCompat_(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr)' in assembly: 'Xamarin.AndroidX.RecyclerView.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve AndroidX.Core.View.Accessibiity.AccessibilityNodeInfoCompat
at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
at Mono.Linker.Steps.MarkStep.Process()
at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
at Mono.Linker.Pipeline.Process(LinkContext context)
at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.LinkAssemblies.RunTask()
at Xamarin.Android.Tasks.AndroidTask.Execute()
【问题讨论】:
这里有一个类似的问题,也许可以帮到你***.com/questions/62132157/… 【参考方案1】:在将 Visual Studio 更新到 16.9.2 并更新 Android SDK 后,我遇到了同样的问题。
简单的解决方案是在包管理器中更新“Xamarin.AndroidX.RecyclerView”Nuget 包。我更新到最新版本(v1.1.0.8)。
【讨论】:
感谢您的提示。我的解决方案是首先安装“Xamarin.AndroidX.RecyclerView”。 这里也一样。我没有安装那个包。安装它并修复了错误。 确实!谢谢! 对我来说当然不行!!!从来没有在 Xamarin 中工作过... @user1034912 也许您需要根据***.com/a/67092611/1399272 -Xamarin.AndroidX.Core
、Xamarin.AndroidX.CustomView
、Xamarin.AndroidX.Preference
、Xamarin.AndroidX.RecyclerView
明确安装的其他软件包之一?【参考方案2】:
同样的问题,但我没有安装“Xamarin.AndroidX.RecyclerView”。
解决方案:安装在 android 项目 'Xamarin.AndroidX.RecyclerView' 中,一切正常
【讨论】:
这对我有用,我还更新了解决方案中的所有 nugget 包。 它也对我有用【参考方案3】:Zee 的回答是正确的。 这是可以解决其他类似问题的解释。 https://github.com/xamarin/AndroidX/issues/283
jpobst 于 3 月 1 日发表评论 在解决传递依赖时, 不幸的是,NuGet 选择了满足 标准。这意味着对传递依赖的修复通常 不要被捡起来。
在这种情况下,问题是命名空间拼写错误 (AndroidX.Core.View.Accessibiity) 已更正,但是有一个(或多个) 使用该命名空间中的类型的包中的 更新了。
您需要确保您使用的是最新版本 包,这可能需要添加显式包引用 他们:
Xamarin.AndroidX.Core Xamarin.AndroidX.CustomView Xamarin.AndroidX.Preference Xamarin.AndroidX.RecyclerView
【讨论】:
【参考方案4】:我遇到了这个错误。就我而言,它最终通过删除 Xamarin.AndroidX.Legacy.Support.V4 NuGet 来解决,无论如何都不需要它。我认为自动 AndroidX 迁移将其放入。
【讨论】:
【参考方案5】:对我来说,问题在于 VS 16.9.3 和发布版本,解决方案是删除对 Xamarin.AndroidX.AppCompat.AppCompatResources
的依赖。
【讨论】:
【参考方案6】:在我更新了所有 nuget
软件包后,今天我也遇到了同样的问题,当我清理并重建解决方案时问题得到了解决。
【讨论】:
具有讽刺意味的是,这对我也有效。【参考方案7】:对我来说,当我升级到 Xamarin.Firebase.Messaging v 121.1.0 时问题就开始了 - 恢复到 v121.0.1 解决了这个问题 - 至少是暂时的
【讨论】:
我同意这只是 Xamarin 的一个无休止的无休止的问题......和往常一样,这里的解决方案都不起作用【参考方案8】:我的解决方案是通过 Nuget 安装:Xamarin.Google.Android.Material
【讨论】:
以上是关于Mono.Linker.MarkException:错误处理方法:'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManage的主要内容,如果未能解决你的问题,请参考以下文章