我使用 ILRepack 将一堆 DLL 合并到最终的 Merged.dll 中
ILRepack.exe /verbose /out:C:\..\.Merged.dll /wildcards *.dll /lib:C:\.MonoAndroidPath.\v8.1
一些合并的 DLL 使用 Mono.Android.dll 功能,我不想将其合并,因为我认为它是错误的,并且输出程序集将达到 ~30MB。
这就是为什么我没有合并它,而是使用/lib
ILRepack 的特性来指定引用。
/lib:C:\.MonoAndroidPath.\v8.1
是 xamarin 解决方案也使用的 Mono.Android.dll 的路径。
当我Merged.dll
在应用程序中使用时,它会编译但是当应用程序即将启动时我得到
Java.Lang.IllegalAccessError:预验证类中的类引用解析为意外实现
有没有办法解决这个问题?
如果单独添加所有 DLL,则该解决方案确实有效。
编辑:
java.lang.IllegalAccessError:预验证类中的类引用解析为在运行测试项目时意外实现?
我确实通读了这篇文章和类似的文章,但它们与 Android 解决方案有关,而不是与 Xamarin 解决方案有关。到目前为止,我无法将那里提供的解决方案翻译成我的案例。所以请不要关闭这个问题,因为它仍然相关。