C# 预验证类中的XAMARIN-Mono.Android-Class ref解析为意外实现

C# 预验证类中的XAMARIN-Mono.Android-Class ref解析为意外实现,c#,xamarin,dll,ilrepack,C#,Xamarin,Dll,Ilrepack,我已经使用iRepack将一堆dll合并到一个最终的Merged.dll中 ILRepack.exe /verbose /out:C:\..\.Merged.dll /wildcards *.dll /lib:C:\.MonoAndroidPath.\v8.1 一些合并的dll使用Mono.Android.dll功能,我不想将其合并,因为我认为这是错误的,而且输出程序集将以~30MB的速度运行 这就是为什么我没有合并它,而是使用ILRepack的/lib特性来指定引用。 /lib:C:\.Mo

我已经使用iRepack将一堆dll合并到一个最终的Merged.dll中

ILRepack.exe /verbose /out:C:\..\.Merged.dll /wildcards *.dll /lib:C:\.MonoAndroidPath.\v8.1
一些合并的dll使用Mono.Android.dll功能,我不想将其合并,因为我认为这是错误的,而且输出程序集将以~30MB的速度运行

这就是为什么我没有合并它,而是使用ILRepack的
/lib
特性来指定引用。
/lib:C:\.MonoAndroidPath。\v8.1
是指向Mono.Android.dll的路径,xamarin解决方案也使用该路径

当我在应用程序中使用
Merged.dll
时,它会编译,但当应用程序即将启动时,我会得到

Java.Lang.IllegalAccessError:预验证类中的类ref已解析为意外实现

有什么办法解决这个问题吗

如果单独添加所有DLL,则解决方案确实有效

编辑:


我确实读过这篇文章和类似的文章,但它们与Android解决方案有关,而与Xamarin解决方案无关。到目前为止,我还无法将那里提供的解决方案翻译成我的案例。因此,请不要结束这个问题,因为它仍然是相关的

这篇文章中确实读到了@Stefan的可能复制品,但它需要更多的安卓解决方案,而不是Xamarin解决方案。我没有找到办法通过翻译C#Hmm中讨论的内容来解决这个问题。。是的,我明白了。然而,该错误似乎表明存在重复引用。你能验证一下吗?它确实表明了这一点,理论上可能是因为我不完全了解iRepack的
/lib
功能。Android解决方案确实引用了文章中提到的Mono.Android.dll项目,但是在
/lib
命令中定义了指向该引用的相同路径。我认为解决方案是在.csproj中指定Mono.Android.dll的第一个工作引用是使用的,但到目前为止还没有找到一种方法。