Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] error during linking SkiaSharp.Views.Android #2291

Closed
NPadrutt opened this issue Oct 22, 2022 · 7 comments
Closed

[BUG] error during linking SkiaSharp.Views.Android #2291

NPadrutt opened this issue Oct 22, 2022 · 7 comments

Comments

@NPadrutt
Copy link

NPadrutt commented Oct 22, 2022

Description

I have a .net MAUI app that uses SkiaSharp via LiveCharts2. On .net 6 and .net 7 RC1 that worked without issues. on .net 7 RC2 I get this error when I publish my app for Android:

ILLink : error IL1011: Failed to write 'obj\Release\net7.0-android\android-x86\linked\SkiaSharp.Views.Android.dll'. [D:\a\MoneyFox\MoneyFox\src\MoneyFox.Ui\MoneyFox.Ui.csproj::TargetFramework=net7.0-android]
  Fatal error in IL Linker
  Unhandled exception. Mono.Linker.LinkerFatalErrorException: ILLink: error IL1011: Failed to write 'obj\Release\net7.0-android\android-x86\linked\SkiaSharp.Views.Android.dll'.
   ---> System.ArgumentException: Member 'System.Int32 SKCanvasView_ignorePixelScaling' is declared in another module and needs to be imported
     at Mono.Cecil.MetadataBuilder.LookupToken(IMetadataTokenProvider provider)
     at Mono.Cecil.Cil.CodeWriter.WriteOperand(Instruction instruction)
     at Mono.Cecil.Cil.CodeWriter.WriteInstructions()
     at Mono.Cecil.Cil.CodeWriter.WriteResolvedMethodBody(MethodDefinition method)
     at Mono.Cecil.Cil.CodeWriter.WriteMethodBody(MethodDefinition method)
     at Mono.Cecil.MetadataBuilder.AddMethod(MethodDefinition method)
     at Mono.Cecil.MetadataBuilder.AddMethods(TypeDefinition type)
     at Mono.Cecil.MetadataBuilder.AddType(TypeDefinition type)
     at Mono.Cecil.MetadataBuilder.AddTypes()
     at Mono.Cecil.MetadataBuilder.BuildTypes()
     at Mono.Cecil.MetadataBuilder.BuildModule()
     at Mono.Cecil.MetadataBuilder.BuildMetadata()
     at Mono.Cecil.ModuleWriter.<>c.<BuildMetadata>b__2_0(MetadataBuilder builder, MetadataReader _)
     at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TItem item, Func`3 read)
     at Mono.Cecil.ModuleWriter.BuildMetadata(ModuleDefinition module, MetadataBuilder metadata)
     at Mono.Cecil.ModuleWriter.Write(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
     at Mono.Cecil.ModuleWriter.WriteModule(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
     at Mono.Cecil.ModuleDefinition.Write(String fileName, WriterParameters parameters)
     at Mono.Cecil.AssemblyDefinition.Write(String fileName, WriterParameters parameters)
     at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
     --- End of inner exception stack trace ---
     at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
     at Mono.Linker.Steps.OutputStep.OutputAssembly(AssemblyDefinition assembly)
     at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
     at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
     at Mono.Linker.Pipeline.Process(LinkContext context)
     at Mono.Linker.Driver.Run(ILogger customLogger)
     at Mono.Linker.Driver.Main(String[] args)

I'm able to publish for iOS without issues though.

Code

Expected Behavior

Either linking works correctly or the library does skip linking.

Actual Behavior

The linking fails which causes the build to fail.

Basic Information

  • Platform Target Frameworks:
    • Android: .net7-android
@NPadrutt
Copy link
Author

NPadrutt commented Nov 11, 2022

As an update, this issue persists on the stable release of .net 7.

1 similar comment
@justlucky
Copy link

As an update, this issue persists on the stable release of .net 7.

@AswinPG
Copy link

AswinPG commented Nov 15, 2022

As an update, this issue persists on the stable release of .net 7. :(

@clough360
Copy link

Yes, can confirm this issue with stable release of .Net 7. Only occurs on Android, compiles ok on IOS

@tipa
Copy link

tipa commented Dec 13, 2022

Same problem has been posted here (incl. a workaround): dotnet/maui#11901

@mattleibow
Copy link
Contributor

Here is the workaround and explanation dotnet/maui#11901 (comment)

@mattleibow
Copy link
Contributor

Closing this as it is fixed in a servicing release as well as rewritten in net8.

@mattleibow mattleibow closed this as not planned Won't fix, can't repro, duplicate, stale Dec 14, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Jan 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants