IL2CPP fails saying "Sequence contains no matching element
Hi,
I'm attempting to include SharpDX in a unity project to do some direct2d drawing. This was working, and does work in the editor, however now when I try to build for UWP, I get a message:
IL2CPP error for method 'System.Void SharpDX.Direct2D1.Bitmap::CopyFromMemory(System.Nullable`1,System.IntPtr,System.Int32)' in Interfaces.cs:208 Additional information: Sequence contains no matching element
This did work at one point, but is now failing. Any idea what could have changed?
Are there more details? If there is a call stack from IL2CPP, please provide it as well.
Stack trace:
Additional information: Sequence contains no matching element il2cpp.exe didn't catch exception: System.InvalidOperationException: Sequence contains no matching element at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate) at Unity.IL2CPP.StackAnalysis.StackAnalysis.<>c__DisplayClass15_1.b__1(Entry item) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.$$anonymous$$oveNext() at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection) at Unity.IL2CPP.StackAnalysis.StackAnalysis.ComputeGlobalVariables() at Unity.IL2CPP.StackAnalysis.StackAnalysis.get_Globals() at Unity.IL2CPP.$$anonymous$$ethodBodyWriter.Generate() at Unity.IL2CPP.$$anonymous$$ethodWriter.<>c__DisplayClass0_0.b__0(IGenerated$$anonymous$$ethodCodeWriter bodyWriter, IRuntime$$anonymous$$etadataAccess metadataAccess) at Unity.IL2CPP.CodeWriterExtensions.Write$$anonymous$$ethodWith$$anonymous$$etadataInitialization(IGenerated$$anonymous$$ethodCodeWriter writer, String methodSignature, String methodFullName, Action`2 write$$anonymous$$ethodBody, String uniqueIdentifier, $$anonymous$$ethodReference methodRef) at Unity.IL2CPP.$$anonymous$$ethodWriter.Write$$anonymous$$ethodDefinition(IGenerated$$anonymous$$ethodCodeWriter writer, $$anonymous$$ethodReference method, I$$anonymous$$ethodCollector methodCollector, ISourceAnnotationWriter sourceAnnotationWriter, IIcall$$anonymous$$appingService icall$$anonymous$$apping, VTableBuilder vtableBuilder, Shared$$anonymous$$ethodCollector shared$$anonymous$$ethodCollector, ISequencePointProvider sequencePointCollector) at Unity.IL2CPP.SourceWriter.<>c__DisplayClass7_0.b__0(IGenerated$$anonymous$$ethodCodeWriter writer, TypeReference type) at Unity.IL2CPP.SourceWriter.WriteEqualSizedChunks[T](NPath outputDir, IEnumerable`1 items, String fileName, Int64 chunkSize, Action`1 writeHeaderAction, Action`2 writeItemAction, Action`1 writeFooterAction, SourceWritingContext sourceWritingContext, Action`2 writeEnd) at Unity.IL2CPP.SourceWriter.WriteEqualSizedChunks[T](NPath outputDir, IEnumerable`1 items, String fileName, Int64 chunkSize, Action`2 writeItemAction, SourceWritingContext sourceWritingContext, Action`2 writeEnd) at Unity.IL2CPP.SourceWriter.Write$$anonymous$$ethodSourceFiles(NPath outputDirectory, SourceWritingContext sourceWritingContext, String fileName, IEnumerable`1 typeList, I$$anonymous$$ethodCollector methodCollector, Boolean write$$anonymous$$arshalingDefinitions) at Unity.IL2CPP.SourceWriter.Write(NPath outputDir, SourceWritingContext sourceWritingContext, AssemblyDefinition assemblyDefinition, I$$anonymous$$ethodCollector methodCollector) at Unity.IL2CPP.AssemblyConverter.Apply() at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(IEnumerable`1 assemblyDirectories, IEnumerable`1 explicitAssemblies, NPath outputDir, NPath dataFolder, NPath symbolsFolder, NPath executableAssembiesFolder, NPath monoLibFolder, NPath monoEtcFolder, NPath[] searchDirectories, String entryAssemblyName, NPath[] extraTypesFiles) at il2cpp.Program.DoRun(String[] args) at il2cpp.Program.Run(String[] args) at il2cpp.Program.$$anonymous$$ain(String[] args)
It appears to be something with the assembly stripping. If I add assembly fullname="SharpDX.Direct2D1" preserve="all"
to the link.xml, the error message changes:
IL2CPP error for method 'System.Void SharpDX.Direct2D1.Bitmap::CopyFromBitmap(System.Nullable`1 ,SharpDX.Direct2D1.Bitmap,System.Nullable`1)' in assembly 'C:\Users\Redacted\Temp\StagingArea\Data\$$anonymous$$anaged\SharpDX.Direct2D1.dll'
Is there any way to disable stripping completely? Additional information: Sequence contains no matching element
Your answer
