IKVM - 使用生成的程序集(来自JAR)会在Type Initializer中导致MissingMethodException

时间:2015-05-01 20:32:55

标签: ikvm missingmethodexception typeinitializer

我们遇到的问题是使用ikvmc从jar文件转换的.NET dll。在尝试实例化“我的”时,我们看到下面的错误(这是位于“ikvm.extensions”中的扩展方法“printStackTrace”的输出,因为这似乎是人们对IKVM的了解所在。)

Java代码中的“App”类继承自Hashtable。此外,当我们使用ikvmc从同一个jar文件生成可执行文件(而不是dll)时(这次使用清单文件中设置的Main方法)并运行该exe文件,一切正常。 “我的”在java代码的Main方法中实例化,一切正常。

java.lang.ExceptionInInitializerError
    at App.<init>(App.java)
    at My.<init>(My.java:107)
    at cli.Tests.Program.Main(Program.cs:58)
    at cli.System.AppDomain._nExecuteAssembly(Unknown Source)
    at cli.System.AppDomain.ExecuteAssembly(Unknown Source)
    at cli.Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly(Unknown Source) Caused by: cli.System.MissingMethodException: Method not found: 'Void java.util.Hashtable.__<clinit>()'.
    at cli.Tests.Program.Main(Program.cs:65)
    ... 3 more

我们可以采取哪些不同的方式来解决这个问题? 如果您想知道,我们通过Nuget包含了IKVM,因此包含了28个IKVM程序集,是的。

0 个答案:

没有答案