proxygen抛出System.NullReferenceException

时间:2015-12-17 11:43:26

标签: jni4net java-interop

我想在我们的java应用程序中使用dll文件,我正在使用jni4net,当我尝试为我们的Dll创建代理时它会抛出

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 个答案:

答案 0 :(得分:1)

您的代码是否使用泛型?根据Proxygen文档,该工具无法为包含泛型类型的方法签名生成桥接包装。

我遇到了相同的错误消息,并且在公共方法签名中使用泛型结果证明是问题所在。我使用引用here的Proxygen分支解决了这个问题。

编辑:direct link到分支机构。

或者,您可以尝试使用非泛型数据结构,或者将通用数据结构包装在非泛型类中(例如,将List<MyObj>包裹在MyObjList类中)并放置非不同项目中的泛型类。