【问题标题】:proxygen throws System.NullReferenceExceptionproxygen 抛出 System.NullReferenceException
【发布时间】:2015-12-17 11:43:26
【问题描述】:

我想在我们的 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)

【问题讨论】:

    标签: java jni4net java-interop


    【解决方案1】:

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

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

    编辑:direct link 到分支。

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

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多