Xamarin Android LinkAssemblies 任务失败
Posted
技术标签:
【中文标题】Xamarin Android LinkAssemblies 任务失败【英文标题】:Xamarin Android LinkAssemblies task failed 【发布时间】:2017-09-11 15:52:09 【问题描述】:使用 Visual Studio 2017 预览版15.4.0 以及截至今日所有内容的最新更新。 每当我构建我的项目时,我都会收到此错误,作为一种解决方法,我一直按照几乎所有地方的建议将链接转为“无”,但这不是解决方法,我非常感谢一些有用的建议关于我可以做些什么才能以应有的方式发布此应用程序。错误是:
严重性代码描述项目文件行抑制状态 错误“LinkAssemblies”任务意外失败。 Mono.Linker.MarkException:错误处理方法:'System.Void android.Support.CustomTabs.Chromium.SharedUtilities._MobileServices.CustomTabActivityHelper::LaunchUrlWithCustomTabsOrFallback(Android.App.Activity,Android.Support.CustomTabs.CustomTabsIntent,Android.Net.Uri,Android.Support.CustomTabs.Chromium.SharedUtilities._MobileServices.ICustomTabFallback )' 在汇编中:'Microsoft.Azure.Mobile.Client.dll' ---> Mono.Cecil.ResolutionException:无法解析 System.Void Android.Support.CustomTabs.CustomTabsIntent::LaunchUrl(Android.App.Activity,Android.Net.Uri) 在 Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference 参考)在 Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference 参考)在 Mono.Linker.Steps.MarkStep.MarkInstruction(指令指令) 在 Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) 在 Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition 方法) 在 Mono.Linker.Steps.MarkStep.ProcessQueue() --- 内部结束 异常堆栈跟踪 --- 在 Mono.Linker.Steps.MarkStep.ProcessQueue() 在 Mono.Linker.Steps.MarkStep.Process() 在 Mono.Linker.Steps.MarkStep.Process(LinkContext context) 在 Mono.Linker.Pipeline.Process(LinkContext 上下文)在 MonoDroid.Tuner.Linker.Process(LinkerOptions 选项,LinkContext& 上下文)在 Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) 在 Xamarin.Android.Tasks.LinkAssemblies.Execute() 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() com.tapig.ria.quickmeme C:\Program 文件 (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1591
我无法删除此软件包,因为它是 Facebook 要求的。 Android SDK 包装客户端,但由于这个问题,我也无法增加我的应用程序大小,欢迎提出任何想法。
编辑:如果我启用在设备上完美调试的 Android 4.4,我也会在同一标题下收到此错误。
Mono.Linker.MarkException: Error processing method: 'System.Void Acr.UserDialogs.Fragments.AbstractDialogFragment`1::OnKeyPress(System.Object,Android.Content.DialogKeyEventArgs)' in assembly: 'Acr.UserDialogs.dll' ---> System.ArgumentNullException: Value cannot be null.
Parameter name: instruction
at Mono.Cecil.Cil.InstructionOffset..ctor(Instruction instruction)
at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
at Mono.Cecil.Cil.CodeReader.ReadScopes(Collection`1 scopes)
at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
at Mono.Cecil.Cil.CodeReader.ReadScopes(Collection`1 scopes)
at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
at Mono.Cecil.Cil.CodeReader.ReadDebugInfo()
at Mono.Cecil.Cil.CodeReader.ReadMethodBody()
at Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method)
at Mono.Cecil.MethodDefinition.<>c.<get_Body>b__41_0(MethodDefinition method, MetadataReader reader)
at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TRet& variable, TItem item, Func`3 read)
at Mono.Cecil.MethodDefinition.get_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.Process()
at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.LinkAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() com.tapig.ria.quickmeme C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1591
【问题讨论】:
感谢您的编辑,今天我的脑子里到处都是,感激不尽。 【参考方案1】:Microsoft.Azure.Mobile.Client.dll
是从 android 项目引用中的不同位置引用的。改变它会解决你的问题。
【讨论】:
在目标文件中?只是一般在项目中? 我在包配置中有 2 个条目,这是解决方案中唯一出现的地方,据我所知:我有类似的问题,虽然原因来自 Xamarin.Auth 库。默认情况下,它会自动解析为 Xamarin.Android.Support.CustomTabs v 23.3.0。修复方法是手动将更高版本添加到 Android 项目(目前为 26.1.0.1)。
【讨论】:
以上是关于Xamarin Android LinkAssemblies 任务失败的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?
xamarin android开发 两个按钮 怎么放在同一排上
抽屉布局在 Xamarin.Android.Support.Core.UI 和 Xamarin.Android.Support.V4 中都存在
无法使用 Xamarin.Android 中的 Xamarin.Mobile 组件保存联系人
将Xamarin.Android应用程序迁移到Xamarin.Forms应用程序
dotnet 5 和 Xamarin Android:找不到导入的项目“Xamarin.Android.CSharp.targets”