shinyorg / shiny

.NET Framework for Backgrounding & Device Hardware Services (iOS, Android, & Catalyst)
https://shinylib.net
MIT License
1.44k stars 227 forks source link

[Bug]: #851

Closed alex-dubatov closed 2 years ago

alex-dubatov commented 2 years ago

Component

Core (Settings, Startup)

What platform(s) are effected?

Steps To Reproduce

  1. Install libraries into Xamarin.Android project:
    <ItemGroup>
    <PackageReference Include="DryIoc.dll">
      <Version>4.8.4</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Analytics">
      <Version>4.4.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Crashes">
      <Version>4.4.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Logging">
      <Version>6.0.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions">
      <Version>6.0.0</Version>
    </PackageReference>
    <PackageReference Include="ReactiveUI">
      <Version>16.4.15</Version>
    </PackageReference>
    <PackageReference Include="ReactiveUI.Fody">
      <Version>16.4.15</Version>
    </PackageReference>
    <PackageReference Include="ReactiveUI.XamForms">
      <Version>16.4.15</Version>
    </PackageReference>
    <PackageReference Include="Shiny.Core">
      <Version>2.4.1.2971</Version>
    </PackageReference>
    <PackageReference Include="Shiny.Framework">
      <Version>1.3.0.100</Version>
    </PackageReference>
    <PackageReference Include="System.Reactive">
      <Version>5.0.0</Version>
    </PackageReference>
    <PackageReference Include="System.Reactive.Core">
      <Version>5.0.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.AndroidX.Core">
      <Version>1.6.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData">
      <Version>2.3.1.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.AndroidX.RecyclerView">
      <Version>1.2.1.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="5.0.0.2244" />
    <PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
    </ItemGroup>

    2 Choose Release mode 3 Try to run on device or make archive

Expected Behavior

Relese build successfull or runned on device

Actual Behavior

Got build exception

Exception or Log output

7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(660,5): error XALNK7000: Mono.Linker.MarkException: Error processing method: 'System.Windows.Input.ICommand Shiny.BaseViewModel::LoadingCommand(System.Func`1<System.Threading.Tasks.Task>,System.String,System.Boolean)' in assembly: 'Shiny.Framework.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve ReactiveUI.ReactiveCommand`2<System.Reactive.Unit,System.Reactive.Unit> ReactiveUI.ReactiveCommand::CreateFromTask(System.Func`1<System.Threading.Tasks.Task>,System.IObservable`1<System.Boolean>,System.Reactive.Concurrency.IScheduler,System.Reactive.Concurrency.IScheduler)
Error       Mono.Linker.MarkException: Error processing method: 'System.Windows.Input.ICommand Shiny.BaseViewModel::LoadingCommand(System.Func`1<System.Threading.Tasks.Task>,System.String,System.Boolean)' in assembly: 'Shiny.Framework.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve ReactiveUI.ReactiveCommand`2<System.Reactive.Unit,System.Reactive.Unit> ReactiveUI.ReactiveCommand::CreateFromTask(System.Func`1<System.Threading.Tasks.Task>,System.IObservable`1<System.Boolean>,System.Reactive.Concurrency.IScheduler,System.Reactive.Concurrency.IScheduler)
   at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
   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()
   --- End of inner exception stack trace ---
   at Mono.Linker.Steps.MarkStep.ProcessQueue()
   at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
   at Mono.Linker.Steps.MarkStep.Process()
   at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
   at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
   at Mono.Linker.Pipeline.Process(LinkContext context)
   at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
   at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
   at Xamarin.Android.Tasks.LinkAssemblies.RunTask()
   at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17

Code Sample

No response

Code of Conduct

aritchie commented 2 years ago

Framework is NOT a supported library yet and linker setup is something you need to read the Microsoft docs about

alex-dubatov commented 2 years ago

Thank you!