我是Eclipse RCP的新手。我尝试使用默认项目资源管理器在E4的基础上构建一个RCP项目。我找到了这两个教程:dirksmetric.wordpress.com/2012/08/01/tutorial-eclipse-rcp-e4-with-3-x-views-like-project-explorer-properties-etc/ vogella.com/tutorials/ Eclipse4MigrationGuide / article.html
毕竟我有一个带有部件的窗口但是没有加载项目浏览器。这是来自log的stackstrace。
!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-07-14 12:11:32.706
!MESSAGE Unable to create class 'org.eclipse.ui.internal.e4.compatibility.CompatibilityView' from bundle '86'
!STACK 0
org.eclipse.e4.core.di.InjectionException: Could not find satisfiable constructor in org.eclipse.ui.internal.e4.compatibility.CompatibilityView
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:408)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:551)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:535)
at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:70)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:737)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1289)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:68)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:5439)
这是我的plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="product_spside"
point="org.eclipse.core.runtime.products"> <!-- org.eclipse.core.runtime.applications -->
<product application="org.eclipse.e4.ui.workbench.swt.E4Application" name="SPS IDE">
<!-- org.eclipse.e4.ui.workbench.swt.E4Application -->
<property name="appName" value="SPS IDE"> </property>
<property name="applicationXMI" value="spside.rcp/Application.e4xmi"> </property>
</product>
<!-- <application>
<run
class="spside.rcp.Application">
</run>
</application>-->
</extension>
<!-- <extension point="org.eclipse.ui.perspectives">
<perspective
name="RCP Perspective"
class="spside.rcp.Perspective"
id="spside.rcp.perspective">
</perspective>
</extension>-->
</plugin>
我尝试了谷歌的所有tipps,但我不知道该怎么做。
感谢您的帮助!
答案 0 :(得分:0)
我在this tutorial中从头开始创建了一个新的RCP项目,但它确实有效。在此之后,我意识到原始项目的pom.xml与新项目的pom.xml不同。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="application"
point="org.eclipse.core.runtime.applications">
<application>
<run
class="spside.rcp.Application">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="Perspective"
class="spside.rcp.Perspective"
id="spside.rcp.perspective">
</perspective>
</extension>
<extension
point="org.eclipse.ui.views">
<view
name="View"
inject="true"
class="spside.rcp.View"
id="spside.rcp.view">
</view>
</extension>
<extension
point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension
targetID="*">
<view
standalone="true"
minimized="false"
relative="org.eclipse.ui.editorss"
relationship="left"
id="spside.rcp.view">
</view>
</perspectiveExtension>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu">
<menu
label="File">
<command
commandId="org.eclipse.ui.file.exit"
label="Exit">
</command>
</menu>
</menuContribution>
</extension>
<extension id="product_test" point="org.eclipse.core.runtime.products">
<product application="spside.rcp.application" name="My Product">
<property name="appName" value="SPS IDE"> </property>
<property name="applicationXMI" value="spside.rcp/Application.e4xmi"> </property>
</product>
</extension>
</plugin>
我认为主要问题是我没有在第一个扩展中初始化3.x组件。下一个问题是第二个扩展点必须定位到相同的id:id =&#34; spside.rcp.perspective&#34;如Application.e4xmi。