在RCP项目中完成自定义“新文件向导”时出现异常

时间:2012-07-28 11:50:07

标签: eclipse-plugin eclipse-rcp wizard

我正在使用自定义“新文件向导”。当我按下完成按钮我期望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)
.
.
.

1 个答案:

答案 0 :(得分:3)

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

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

添加此行:     menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT)); F.E.方法     createEditMenu。 或任何其他菜单条目。