在Xamarin

时间:2016-10-18 20:50:48

标签: xamarin

我想发布我的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代码。

1 个答案:

答案 0 :(得分:7)

我不确定您为何会在Xamarin.Android项目中引用Xamarin.iOS。但问题是,当它不应该存在时,你会有某种类型的引用。您的PCL中不应包含任何本机代码。

链接器在Debug配置时不起作用。当您更改为Release时,它将尝试查找您不使用的程序集并将其删除。出于某种原因,您的Android项目中有一个iOS程序集。

检查您的Xamarin.Android和PCL项目是否仍未引用Xamarin.iOS。本机项目应仅引用PCL(其中不包含本机代码)