В настоящее время я пытаюсь вызвать .NET-код с помощью jni4net.IncompatibleClassChangeError jni4net
Мне удалось создать прокси-классы из .NET .dll с помощью proxygen. Тем не менее, этот код:
Bridge.init();
Bridge.LoadAndRegisterAssemblyFrom(new File("clAESEncripcion.j4n.dll"));
aesencryption.AESObjectEnc aesObjectEnc = new aesencryption.AESObjectEnc();
aesObjectEnc.Encrypt(new Ref<String>("To encrypt"));
Выдает следующее исключение:
Exception in thread "main" java.lang.IncompatibleClassChangeError
at aesencryption.AESObjectEnc.Encrypt(Native Method)
at clAESEncripcion.MainApp.main(MainApp.java:19)
at net.sf.jni4net.jni.JNIEnv.ExceptionTest()(:0)
at net.sf.jni4net.jni.JNIEnv.CallIntMethod()(:0)
at net.sf.jni4net.inj.__IClrProxy.getClrHandle()(:0)
at net.sf.jni4net.inj.__IClrProxy.GetObject()(:0)
at net.sf.jni4net.utils.Convertor.StrongJp2CString()(:0)
at net.sf.jni4net.utils.Convertor.FullJ2C()(:0)
at net.sf.jni4net.Ref.GetValue()(:0)
at AESEncryption.__AESObjectEnc.Encrypt1()(:0)
Я сейчас workging с jdk1.7.0_75 64бит, Microsoft.NET \ Framework64 \ v4.0.30319 и jni4net-0,8. 6,0.
Класс AESObjectEnc C# для dll имеет метод шифрования, который ожидает String ref.
Заранее спасибо.