Eclipse plugin 无法创建类兼容性视图
我是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/eclipsee4migrationguide/article.html 毕竟,我有一个包含部件的窗口,但项目资源管理器没有加载。这是日志中的堆栈Eclipse plugin 无法创建类兼容性视图,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我是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/eclipsee4migrationguide/article.html 毕竟,我有一个包含部件的窗口,但项目资源管
!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>
我尝试了谷歌的所有TIPP,但我不知道该怎么办
谢谢你的帮助 我像年一样从头开始做了一个新的RCP项目,并且它成功了。在这之后,我意识到原来项目的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组件。下一个问题是,第二个扩展点必须指向与Application.e4xmi中相同的id:id=“spside.rcp.perspective”。ProjectExplorer需要太多的3.x兼容模式代码,因此您可能最好只使用3.x样式的rcp。eclipse自己用哪种方式来实现?特别是在氧气释放方面?我不敢相信他们在e4上工作了这么长时间而没有为Eclipse使用3.x风格的RCP。Eclipse本身就是一个3.x兼容模式的RCP,有大量3.x风格的代码是永远不会消失的。纯e4应用程序主要用于不使用任何3.x代码的应用程序。