2017-07-15 1 views
0

Je suis nouveau dans Eclipse RCP. J'essaye de construire un projet RCP sur la base de E4 avec l'explorateur de projet par défaut. J'ai trouvé ces deux tutoriels: dirksmetric.wordpress.com/2012/08/01/tutorial-eclipse-rcp-e4-with-3-x-views-like-project-explorer-properties-etc/ vogella.com/tutorials/ Eclipse4MigrationGuide/article.htmlImpossible de créer une classe CompatibilityView

Après tout j'ai une fenêtre avec des pièces mais l'explorateur de projet n'est pas chargé. C'est le stackstrace du journal.

!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) 

ce ist mon 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> 

J'essaie tous de google mais Tipps je ne sais pas quoi faire.

merci pour votre aide!

+0

L'Explorateur de projet nécessitera tellement de code de mode de compatibilité 3.x que vous feriez probablement mieux d'utiliser simplement un RCP de style 3.x. –

+0

Sur quelle voie l'éclipse-t-elle? Particulier dans la libération d'oxygène? Je ne peux pas croire qu'ils travaillent sur e4 depuis si longtemps et utilisent un RCP de style 3.x pour Eclipse. – Fry123

+0

Eclipse lui-même est un RCP en mode de compatibilité 3.x, il y a une énorme quantité de code de style 3.x qui ne va jamais disparaître. Une application e4 pure est principalement destinée à une application qui n'utilise aucun code 3.x. –

Répondre

0

J'ai fait un nouveau projet RCP à partir de zéro comme dans this tutorial et cela a fonctionné. Après cela, j'ai réalisé que mon pom.xml du projet original a l'air différent du nouveau.

<?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> 

Je pense que le problème principal était que je n'ai pas initialisé les composants 3.x dans la première extension. Le problème suivant était que le deuxième point d'extension doit cibler le même id: id = "spside.rcp.perspective" comme dans Application.e4xmi.