我们有一个C#库,我们的Java代码使用JNA。
当我们在eclipse IDE中启动它时工作正常但是当我们将它作为一个独立的应用程序提取时,它不能用于以下错误消息:
java.lang.Error: Invalid memory access
at com.sun.jna.Native.invokeVoid(Native Method)
at com.sun.jna.Function.invoke(Function.java:374)
at com.sun.jna.Function.invoke(Function.java:323)
at com.sun.jna.Library$Handler.invoke(Library.java:236)
at com.sun.jna.Native$3.invoke(Native.java:1040)
at com.sun.proxy.$Proxy2.init(Unknown Source)
at com.test.FooImpl.init(FooImpl.java:133)
当我们尝试使用C#编写的lib中的方法时,会发生错误。 在远程调试时,我们发现实例(这里是CSharpWrapper)不是null并且具有dll的有效代理。 它也不会输入C#代码。它似乎在JNA和C#之间断开。
this.cSharpWrapper.init();
init是C#lib中的void函数。
这可能是什么原因?