0

カスタムの「新しいファイルウィザード」を使用しています。終了ボタンを押すと、Eclipseが新しいファイルを追加して正しく表示することを期待していますが、代わりに例外が発生し、作成されたファイルを開くことができません。しかし、このウィザードを2回使用すると、例外は発生せず、ファイルは正しく開きます。なぜ?

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

1 に答える 1

3

問題は、アプリにあるプラグインの 1 つが find.ext という名前のマーカーを必要とすることです。エラー ログには IDfind.ext が表示されます。これは、エラー メッセージがスペースなしで連結されているためです。

これは、カスタム アプリケーションがある場合に発生します。解決策は非常に簡単です。ActionBarAdvisor を拡張し、ファイル、ヘルプなどのアプリケーションの初期メニューとツールバーを定義する WindowActionBarAdvisor を見つけます。

次の行を追加します: menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT)); fe メソッドを createEditMenu に追加します。または他のメニューエントリに。

于 2013-01-10T20:28:16.827 に答える