我一直在圍繞x264.dll創建一個JNA包裝器。我有我的x264_param_t以下類:x264編碼器與JNA
然而,當我嘗試初始化我x264_param_t像
x264_param_t param_t = new x264_param_t;
我收到以下錯誤:
Exception in thread "main" java.lang.IllegalArgumentException: Can't determine size of nested structure: Can't instantiate class anotherReversed.x264_param_t$Vui (java.lang.InstantiationException: anotherReversed.x264_param_t$Vui)
at com.sun.jna.Structure.calculateSize(Structure.java:790)
at com.sun.jna.Structure.allocateMemory(Structure.java:287)
at com.sun.jna.Structure.<init>(Structure.java:177)
at com.sun.jna.Structure.<init>(Structure.java:167)
at com.sun.jna.Structure.<init>(Structure.java:163)
at com.sun.jna.Structure.<init>(Structure.java:154)
at anotherReversed.x264_param_t.<init>(x264_param_t.java:7)
如果我在它的父類構造函數中註釋掉了Vui,實例化是可以的。我不知道這個嵌套結構有什麼不同,因爲有兩個嵌套的結構(即Rc和Analyze)。但是,不知何故,JNA無法爲Vui找到所需的尺寸。任何指針?
編輯: 似乎所有其他嵌套結構(分析和rc)也未初始化。我想知道爲什麼?
爲什麼你不考慮JNI?您可以閱讀我的指南[這裏](http://livertmpjavapublisher.blogspot.com/2014/05/jni-for-x264-encoder.html)。 – 2014-05-17 09:59:48