【问题标题】:Mono.Linker.MarkException: Error processing method: 'System.Void Plugin.LocalNotification.Platform.Droid.NotificationServiceImplMono.Linker.MarkException:错误处理方法:'System.Void Plugin.LocalNotification.Platform.Droid.NotificationServiceImpl
【发布时间】:2020-09-19 18:00:09
【问题描述】:

在将 Xamarin.Forms 版本更新到最新的稳定版本 4.6.0.800 后,在发布模式下生成错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(5,5): Error XALNK7000: Mono.Linker.MarkException: Error processing method: 'System.Void Plugin.LocalNotification.Platform.Droid.NotificationServiceImpl::ShowLater(Plugin.LocalNotification.NotificationRequest)' in assembly: 'Plugin.LocalNotification.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve AndroidX.Work.OneTimeWorkRequest/Builder AndroidX.Work.OneTimeWorkRequest/Builder::SetInitialDelay(System.Int64,Java.Util.Concurrent.TimeUnit)
at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod (Mono.Cecil.MethodReference reference) [0x00013] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x0004a] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00040] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x000c2] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00186] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001b] in <0275dd5bdfa6470181a4d79d0790489d>:0
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00047] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x0000a] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.Process () [0x00102] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <0275dd5bdfa6470181a4d79d0790489d>:0
at MonoDroid.Tuner.MonoDroidMarkStep.Process (Mono.Linker.LinkContext context) [0x0000b] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Pipeline.ProcessStep (Mono.Linker.LinkContext context, Mono.Linker.Steps.IStep step) [0x0000d] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0000f] in <0275dd5bdfa6470181a4d79d0790489d>:0
at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00000] in <0275dd5bdfa6470181a4d79d0790489d>:0
at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x00071] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x001dd] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Xamarin.Android.Tasks.LinkAssemblies.RunTask () [0x0001b] in <0275dd5bdfa6470181a4d79d0790489d>:0
at Xamarin.Android.Tasks.AndroidTask.Execute () [0x00000] in <0275dd5bdfa6470181a4d79d0790489d>:0 (XALNK7000)

有人知道解决办法吗?

【问题讨论】:

    标签: c# visual-studio xamarin xamarin.forms


    【解决方案1】:

    我回答了自己的问题,几天后我终于找到了解决此问题的方法。这可能对正在寻找解决方案的人有所帮助。

    解决方案 1:按照以下步骤操作

    • 将网络标准更新到 2.1
    • 将 Plugin.LocalNotification 更新到最新版本 5.0.4
    • 删除不必要的 Android X 块
    • 删除 Xamarin.Android.Support.v7.MediaRouter
    • 在发布模式下启用 Multidex
    • 删除 bin/obj 并重建应用程序 [现在可以使用]

    解决方案 2:更改在所有项目中引用包的方式

    • 从 Android 和 iOS 项目中删除所有包
    • 仅将包添加到 PCL/Net 标准项目
    • 在 Android & iOS 项目中添加 Core 项目的引用
    • 必须使用 Plugin.LocalNotification 的最新版本,即 5.0.4

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2022-10-08
      • 2021-10-31
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 2013-05-16
      相关资源
      最近更新 更多