3
我已經做了一個xtext編輯器(2.5)。 我嘗試在我的RCP應用程序中使用此編輯器。如何將xText編輯器添加到Eclipse(e4)RCP應用程序中?
我用這個代碼:
Injector injector = MyDslActivator.getInstance().getInjector(MyDslActivator.XTEXT_DSL_MYDSL);
EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class);
editor = factory.newEditor(resourceProvider).showErrorAndWarningAnnotations().withParent(container);
但我得到了一個錯誤
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "com/google/inject/Injector"
UPD1
軟件包 「eclipse.m2e.maven.runtime」 有包「 org.google.inject「與另一個版本。解決方案是從該項目中排除該捆綁。
但現在我得到了新的錯誤。
Caused by: java.lang.NullPointerException
at org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions.initialize(EmbeddedEditorActions.java:124)
at org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions.<init>(EmbeddedEditorActions.java:119)
at org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions$Factory.createActions(EmbeddedEditorActions.java:63)
at org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory$Builder.initializeActions(EmbeddedEditorFactory.java:397)
at org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory$Builder.withParent(EmbeddedEditorFactory.java:233)
它發生的原因是谷歌注射器不會將IWorkbench插入到EmbeddedEditorActions.Factory中。
我不知道如何解決它。 e4應用程序有org.eclipse.e4.ui.workbench.IWorkbench,bot沒有org.eclipse.ui.IWorkbench。
你說得對。我不知道捆綁包「eclipse.m2e.maven.runtime」與另一個版本有「org.google.inject」包。 – SergSW