dotnet / android

.NET for Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#
MIT License
1.92k stars 526 forks source link

Linker fails on Droid for F# with Fsharp.Data #1781

Closed willsam100 closed 4 months ago

willsam100 commented 6 years ago

Steps to Reproduce

  1. Clone this repo: https://github.com/willsam100/releaselinkerdroid
  2. Build for Droid - Linker settings Link SDK assemblies only
  3. See

NB: Builds & links when linker is set to Dont't Link

Expected Behavior

Project to build with linker

Actual Behavior

project fails to build, with an error on the linker The "LinkAssemblies" task failed unexpectedly

Target _LinkAssembliesShrink:
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018: The "LinkAssemblies" task failed unexpectedly.
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018: Mono.Linker.MarkException: Error processing method: 'Microsoft.FSharp.Control.FSharpAsync`1<Microsoft.FSharp.Core.Unit> <StartupCode$ReleaseBindingTest>.$MainPage.xaml/clo@17::Invoke(Microsoft.FSharp.Core.Unit)' in assembly: 'ReleaseBindingTest.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Microsoft.FSharp.Control.FSharpAsync`1<FSharp.Data.HttpResponse> FSharp.Data.Http::AsyncRequest(System.String,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Collections.FSharpList`1<System.Tuple`2<System.String,System.String>>>,Microsoft.FSharp.Core.FSharpOption`1<System.Collections.Generic.IEnumerable`1<System.Tuple`2<System.String,System.String>>>,Microsoft.FSharp.Core.FSharpOption`1<System.String>,Microsoft.FSharp.Core.FSharpOption`1<FSharp.Data.HttpRequestBody>,Microsoft.FSharp.Core.FSharpOption`1<System.Collections.Generic.IEnumerable`1<System.Tuple`2<System.String,System.String>>>,Microsoft.FSharp.Core.FSharpOption`1<System.Net.CookieContainer>,Microsoft.FSharp.Core.FSharpOption`1<System.Boolean>,Microsoft.FSharp.Core.FSharpOption`1<System.String>,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Core.FSharpFunc`2<System.Net.HttpWebRequest,System.Net.HttpWebRequest>>,Microsoft.FSharp.Core.FSharpOption`1<System.Int32>)
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod (Mono.Cecil.MethodReference reference) [0x00013] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x0004a] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00040] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x00098] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00162] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001b] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:    --- End of inner exception stack trace ---
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00047] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x0000a] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.Process () [0x00106] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0001c] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00000] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x00071] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x002c8] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Xamarin.Android.Tasks.LinkAssemblies.Execute () [0x001f9] in <96027da06dd5411688a31011072e256f>:0 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00023] in /Users/builder/jenkins/workspace/build-package-osx-mono/2017-12/external/bockbuild/builds/msbuild-15/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs:631 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1812,5): error MSB4018:   at Microsoft.Build.BackEnd.TaskBuilder+<ExecuteInstantiatedTask>d__26.MoveNext () [0x00212] in /Users/builder/jenkins/workspace/build-package-osx-mono/2017-12/external/bockbuild/builds/msbuild-15/src/Build/BackEnd/Components/RequestBuilder/TaskBuilder.cs:787 
Done building target "_LinkAssembliesShrink" in project "ReleaseBindingTest.Droid.fsproj" -- FAILED.

Version Information

=== Visual Studio Community 2017 for Mac ===

Version 7.5.2 (build 40)
Installation UUID: 8d3712bd-ee56-4387-80b1-d5ddc495dce3
Runtime:
    Mono 5.10.1.57 (2017-12/ea8a24b1bbf) (64-bit)
    GTK+ 2.24.23 (Raleigh theme)
    Xamarin.Mac 4.4.1.178 (master / eeaeb7e6)

    Package version: 510010057

=== NuGet ===

Version: 4.3.1.4445

=== .NET Core ===

Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
    2.0.5
    2.0.0
    2.0.0-preview2-25407-01
    1.1.2
    1.1.1
    1.0.5
    1.0.4
SDK: /usr/local/share/dotnet/sdk/2.1.4/Sdks
SDK Versions:
    2.1.4
    2.0.0
    2.0.0-preview2-006497
    1.0.4
    1.0.1
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.10.1/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Profiler ===

Version: 1.6.2
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Apple Developer Tools ===

Xcode 9.2 (13772)
Build 9C40b

=== Xamarin.Mac ===

Version: 4.4.1.193 (Visual Studio Community)

=== Xamarin.iOS ===

Version: 11.12.0.4 (Visual Studio Community)
Hash: 64fece5f
Branch: d15-7
Build date: 2018-05-29 20:00:44-0400

=== Xamarin.Android ===

Version: 8.3.3.2 (Visual Studio Community)
Android SDK: /Users/sam.williams/Library/Developer/Xamarin/android-sdk-macosx
    Supported Android versions:
        6.0 (API level 23)
        7.0 (API level 24)
        7.1 (API level 25)
        8.0 (API level 26)
        8.1 (API level 27)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 26.0.2
SDK Build Tools Version: 26.0.3

Java SDK: /usr
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

=== Xamarin Inspector ===

Version: 1.4.0
Hash: b3f92f9
Branch: master
Build date: Fri, 19 Jan 2018 22:00:34 GMT
Client compatibility: 1

=== Build Information ===

Release ID: 705020040
Git revision: cfe2fc0566bc4db990242959de40505a13f58352
Build date: 2018-05-30 11:24:18-04
Xamarin addins: 3ac7413ef51a88e06367313c27aec8f7292752a6
Build lane: monodevelop-lion-d15-7

=== Operating System ===

Mac OS X 10.13.4
Darwin 17.5.0 Darwin Kernel Version 17.5.0
    Mon Mar  5 22:24:32 PST 2018
    root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64

=== Enabled user installed addins ===

MvvmCross Template pack 2.0.1
AddinMaker 1.4.2
Paket 0.4
WakaTime 3.0.2
xUnit.NET 2 testing framework support 0.7.5
Redth's Addins 1.0.9
Internet of Things (IoT) development (Preview) 7.5

Log File

No applicable

willsam100 commented 6 years ago

interestingly enough, this Builds (and links) with FSarp.Data 3.0.0-beta3

jpobst commented 4 months ago

With support for Classic Xamarin.Android ended May 1st, 2024, this issue is likely no longer relevant.

If this still persists in .NET 8+, please open a new issue with updated information based on net8.0-android or greater. Please include a link to this issue for context.