The “LinkAssemblies” task failed unexpectedly

2019-01-18 08:55发布

When we are trying to build a xamarin forms project in release mode, we are getting the error:

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(5,5): Error MSB4018: The "LinkAssemblies" task failed unexpectedly.
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to metadata item 'System.Void Android.Widget.AbsListView::SetSelectionFromTop(System.Int32,System.Int32)' (defined in 'Xamarin.Forms.Platform.Android, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null') from 'Xamarin.Forms.Platform.Android, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void Android.Widget.AbsListView::SetSelectionFromTop(System.Int32,System.Int32)
   at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
   at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
   at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
   at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
   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()
   --- End of inner exception stack trace ---
   at Xamarin.Android.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__20.MoveNext() (MSB4018) (XXX.Android)

How can we resolve this? We have tried cleaning and building again. Even closing xamarin studio and restarting it. Nothing seems to work.

We are on the latest release of xamarin forms and xamarin forms labs. The minimum android API level we are using is 17. I even tried minimum sdk version 20.

Some more details:

Xamarin Studio
Version 5.7 (build 661)
Installation UUID: f97e711d-1fe0-450f-a3bb-2d9b972ab295
Runtime:
    Microsoft .NET 4.0.30319.0
    GTK+ 2.24.22 (MS-Windows theme)
    GTK# 2.12.26

Xamarin.Android
Version: 4.20.0 (Indie Edition)
Android SDK: C:\Users\Kartik\AppData\Local\Android\android-sdk
    Supported Android versions:
        2.1    (API level 7)
        2.2    (API level 8)
        2.3    (API level 10)
        3.1    (API level 12)
        4.0    (API level 14)
        4.0.3  (API level 15)
        4.1    (API level 16)
        4.3    (API level 18)
        4.4    (API level 19)
        4.4.87 (API level 20)
        5.0    (API level 21)
Java SDK: C:\Program Files (x86)\Java\jdk1.6.0_39
java version "1.6.0_39"
Java(TM) SE Runtime Environment (build 1.6.0_39-b04)
Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode, sharing)

Build Information
Release ID: 507000661
Git revision: b70bab61da996da29045ea8ee8aed1a6faedbe78
Build date: 2015-01-05 11:27:37-05
Xamarin addins: 82f6c71490562d6cd125a09287f441902fdac3d7

Operating System
Windows 6.2.9200.0 (64-bit)

9条回答
趁早两清
2楼-- · 2019-01-18 09:07

In my case the problem was referenced dll Xamarin.iOS in the pcl project. Linking does not work for this assembly. Removing the reference fixed the issue.

查看更多
劳资没心,怎么记你
3楼-- · 2019-01-18 09:09

Jus I changed linking from "NONE" to "sdk and users assembly" and I ran my solution, and the issue has been solved. after that you can change "sdk and users assembly" to "NONE" and run your project without any issue.

But the release file size may be will be change.

enter image description here

查看更多
劳资没心,怎么记你
4楼-- · 2019-01-18 09:09

I´ve solved that changing Android Linker Behavior option in options > Android Builder > Linker from "Link sdk Assemblies Only" to "don't link".

查看更多
对你真心纯属浪费
5楼-- · 2019-01-18 09:11

I also experienced the same problem. After series of trial and errors i found a solution.

In your Manifest set Target Android Version to Android 7.1 (API Level 25 Nougat) or Higher. Set Compile Android Version to Android 7.1 as well.

I hope this helps

查看更多
女痞
6楼-- · 2019-01-18 09:15

In my chase I have changed the linker property ( Linker --> Linking ) to 'None'. I am using visual studio 2017 RC

查看更多
你好瞎i
7楼-- · 2019-01-18 09:27

I changed the Linker properties > Linking from Sdk Assemblies Only to Sdk and User Assemblies for the Release configuration.

options

查看更多
登录 后发表回答