2015-12-17 9 views
1

Я хочу использовать файл DLL в нашей Java-приложение, я использую jni4net, когда я пытался создать прокси-сервер для нашего Dll он бросаетproxygen бросает System.NullReferenceException

System.NullReferenceException: Object reference not set to an instance of an object. 
    at net.sf.jni4net.proxygen.model.Repository.RegisterType(Type type, TypeRegistration registration) 
    at net.sf.jni4net.proxygen.model.Repository.RegisterType(Type type) 
    at net.sf.jni4net.proxygen.model.Repository.RegisterType(Type type, TypeRegistration registration) 
    at net.sf.jni4net.proxygen.model.Repository.Register() 
    at net.sf.jni4net.proxygen.Program.Work(String[] args) 
    at net.sf.jni4net.proxygen.Program.Main(String[] args) 

ответ

1

ли ваш код дженерики? Согласно документации Proxygen, инструмент не может создавать мосты для сигнатур методов, которые включают общие типы.

Я столкнулся с тем же сообщением об ошибке, и использование дженериков в публичных сигнатурах методов оказалось проблемой. Я работал над проблемой, используя ссылку «Проксиген» по ссылке here.

Редактировать: direct link к отрасли.

В качестве альтернативы вы можете попробовать использовать не общие структуры данных, вместо этого, или обернуть ваши общие структуры данных в нетипичных классах (например, завернуть List<MyObj> в MyObjList классе) и поместить эти необщие классы в другом проекте.