Eclipse plugin 完成定制时的例外情况";“新建文件向导”;在RCP项目中

Eclipse plugin 完成定制时的例外情况";“新建文件向导”;在RCP项目中,eclipse-plugin,eclipse-rcp,wizard,Eclipse Plugin,Eclipse Rcp,Wizard,我正在使用自定义的“新建文件向导”。当我按下finish按钮时,我希望eclipse添加一个新文件并正确显示它,但是出现了异常,我无法打开创建的文件。但是,如果我第二次使用此向导,则不会发生异常,并且文件会正确打开。为什么? 执行此行getContainer().run(true、false、op)时会发生异常 这是例外的一部分: !ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-28 16:15:01.239 !MESSAGE Unable to c

我正在使用自定义的“新建文件向导”。当我按下finish按钮时,我希望eclipse添加一个新文件并正确显示它,但是出现了异常,我无法打开创建的文件。但是,如果我第二次使用此向导,则不会发生异常,并且文件会正确打开。为什么?

执行此行
getContainer().run(true、false、op)
时会发生异常

这是例外的一部分:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-28 16:15:01.239
!MESSAGE Unable to create class 'org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor' from bundle '33'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.IllegalArgumentException: can't find IDfind.ext
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:857)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:837)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:111)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:318)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:240)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:161)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:102)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:141)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:889)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:623)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:725)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:696)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:690)
.
.
.

所以问题是,你的应用程序中有一个插件需要一个名为find.ext的标记。错误日志显示IDfind.ext,因为错误消息没有空格

如果您有一个自定义应用程序,就会发生这种情况。解决方案非常简单: 找到扩展ActionBarAdvisor并定义应用程序初始菜单和工具栏(如文件、帮助等)的WindowActionBarAdvisor

添加此行: 添加(新的GroupMarker(IWorkbenchActionConstants.FIND_EXT)); f、 e.对方法的改进 创建编辑菜单。
或者任何其他菜单项。

所以问题是,你的应用程序中的一个插件需要一个名为find.ext的标记。错误日志显示IDfind.ext,因为错误消息没有空格

如果您有一个自定义应用程序,就会发生这种情况。解决方案非常简单: 找到扩展ActionBarAdvisor并定义应用程序初始菜单和工具栏(如文件、帮助等)的WindowActionBarAdvisor

添加此行: 添加(新的GroupMarker(IWorkbenchActionConstants.FIND_EXT)); f、 e.对方法的改进 创建编辑菜单。 或任何其他菜单项