我想发布我的Android应用程序。当我尝试构建它时,它会给我以下错误:
Severity Code Description Project File Line Suppression State
Error The "LinkAssemblies" task failed unexpectedly.
Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Reference to metadata item 'Mono.Security.Interface.MonoTlsProviderFactoryDelegate' (defined in 'Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065') from 'Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve Mono.Security.Interface.MonoTlsProviderFactoryDelegate
at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
at Mono.Linker.Steps.MarkStep.MarkField(FieldReference reference)
at Mono.Linker.Steps.MarkStep.InitializeFields(TypeDefinition type)
at Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type)
at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
at Mono.Linker.Steps.MarkStep.Initialize()
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()
--- End of inner exception stack trace ---
at Java.Interop.Tools.Diagnostics.Diagnostic.Error(Int32 code, Exception innerException, String message, Object[] args)
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() TOPAPP.Droid
我删除了app.droid中的xamarin.ios引用,但是没有用。有什么建议?我也尝试将Android版本设置为我在互联网上找到的版本。我也尝试更新PCL版本,但仍然没有。我错过了什么吗?
修改 在我的项目中,我还有一个可移植的库链接到android项目,其中包含ios代码。
答案 0 :(得分:7)
我不确定您为何会在Xamarin.Android项目中引用Xamarin.iOS。但问题是,当它不应该存在时,你会有某种类型的引用。您的PCL中不应包含任何本机代码。
链接器在Debug
配置时不起作用。当您更改为Release
时,它将尝试查找您不使用的程序集并将其删除。出于某种原因,您的Android项目中有一个iOS程序集。
检查您的Xamarin.Android和PCL项目是否仍未引用Xamarin.iOS。本机项目应仅引用PCL(其中不包含本机代码)