在查看首选项页面时,实现IWorkbenchPreferencePage会给出NPE

时间:2012-07-30 20:07:40

标签: java eclipse swt eclipse-rcp

我有一个Eclipse RCP(3.6)插件,需要一些首选项页面。目前我甚至无法让一个人工作。我已经google了教程,但他们都使用不同版本的IWorkbenchPreferencePage(似乎)。

这是堆栈跟踪:http://codepad.org/tu2WTwAA,它有以下第一个例外:

java.lang.NullPointerException at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1282)

以下是我的plugin.xml条目,由于Node位于首选项视图中,因此无关紧要。

<extension
      point = "org.eclipse.ui.preferencePages">
      <page id="com.test.menuplugin.preferences.general"
           class="com.gdeb.menuplugin.preferences.GeneralPreferences"
           name="Helpers">
      </page>
</extension>

以下是我的 GeneralPreferences 类:http://dpaste.com/hold/778180/

我浏览了API(IWorkbenchPreferencePage@Eclipse)但仍然没有任何线索。我甚至试图查看Vogelles教程,但这与提供的界面有太大不同。

我做错了什么,我应该实现某些偏好对象,比如PreferenceDialog(如果你想要偏好而不是全局偏好,那就好像是这样)?

谢谢大家!

1 个答案:

答案 0 :(得分:2)

对不起,这是一个错误的答案。

在Eclipse 3.7中,该行上的NPE可能是由null函数返回的computeSize引起的(最明显的是,您的类字段size可能是null } 在那时候)。有关平台如何计算大小的信息,请参阅org.eclipse.jface.preference.PreferencePage.computeSize()