Eclipse rcp 如何将xText编辑器添加到Eclipse(e4)RCP应用程序?
我已经做了一个xtext编辑器(2.5)。 我尝试在我的RCP应用程序的一部分中使用此编辑器 我使用以下代码:Eclipse rcp 如何将xText编辑器添加到Eclipse(e4)RCP应用程序?,eclipse-rcp,rcp,xtext,e4,Eclipse Rcp,Rcp,Xtext,E4,我已经做了一个xtext编辑器(2.5)。 我尝试在我的RCP应用程序的一部分中使用此编辑器 我使用以下代码: Injector Injector=MyDslActivator.getInstance().getInjector(MyDslActivator.XTEXT\u DSL\u MYDSL); EmbeddedEditorFactory=injector.getInstance(EmbeddedEditorFactory.class); editor=factory.newEditor(
Injector Injector=MyDslActivator.getInstance().getInjector(MyDslActivator.XTEXT\u DSL\u MYDSL);
EmbeddedEditorFactory=injector.getInstance(EmbeddedEditorFactory.class);
editor=factory.newEditor(resourceProvider).bathrorAndWarningAnnotations().withParent(容器);
但我犯了个错误
java.lang.LinkageError:加载程序约束冲突:加载程序(org/eclipse/osgi/internal/baseadapter/DefaultClassLoader的实例)先前启动了名为“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)
原因:java.lang.NullPointerException
位于org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions.initialize(EmbeddedEditorActions.java:124)
位于org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions。(EmbeddedEditorActions.java:119)
位于org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorActions$Factory.createActions(EmbeddedEditorActions.java:63)
位于org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory$Builder.initializeActions(EmbeddedEditorFactory.java:397)
位于org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory$Builder.withParent(EmbeddedEditorFactory.java:233)
这是因为google injector没有将IWorkbench注入EmbeddedEditorActions.Factory
我不知道如何修理它。
e4应用程序有org.eclipse.e4.ui.workbench.IWorkbench,bot没有org.eclipse.ui.IWorkbench。您必须确保您的RCP只包含一次捆绑包
com.google.inject
。不知何故,它被加载到了两个不同的版本中,这两个版本都提供给了您的DSL插件。您是对的。我不知道包“eclipse.m2e.maven.runtime”中有另一个版本的包“org.google.inject”。