저는 이미 xtext 편집기 (2.5)를 만들었습니다. RCP 응용 프로그램의 일부에서이 편집기를 사용하려고합니다.Eclipse (e4) RCP 응용 프로그램에 xText 편집기를 추가하려면 어떻게합니까?
나는이 코드를 사용합니다
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)
Google 인젝터가 IWorkbench를 EmbeddedEditorActions.Factory에 삽입하지 않기 때문에 발생합니다.
나는 그것을 고치는 방법을 모릅니다. e4 애플리케이션에 org.eclipse.e4.ui.workbench.IWorkbench가 있고, bot에 org.eclipse.ui.IWorkbench가 없습니다.
당신 말이 맞습니다. 나는 "eclipse.m2e.maven.runtime"번들에 다른 버전의 "org.google.inject"패키지가 있다는 것을 몰랐다. – SergSW