1

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)
4

1 に答える 1

1

あなたのコードはジェネリックを使用していますか? Proxygen のドキュメントによると、このツールはジェネリック型を含むメソッド シグネチャのブリッジ ラッパーを生成できません。

同じエラー メッセージが表示され、パブリック メソッド シグネチャでのジェネリックの使用が問題であることが判明しました。ここで参照されている Proxygen ブランチを使用して、この問題を回避しました。

編集:ブランチへの直接リンク。

または、代わりに非ジェネリック データ構造を使用するか、ジェネリック データ構造を非ジェネリック クラスでラップList<MyObj>し(クラスでラップするMyObjListなど)、これらの非ジェネリック クラスを別のプロジェクトに配置することもできます。

于 2016-01-13T12:20:32.097 に答える