web-dev-qa-db-fra.com

Le paquet XYZ n'a pas pu être résolu. Raison: Contrainte manquante: Import-Package: ABC; version = "1.0.0" erreur dans le RCP autonome sans tête

Je travaille sur autonome sans tête RCP . Cela fonctionne sans problème lorsque j'exécute l'application et le produit dans Eclipse IDE, mais lorsque je l'exporte et que je l'exécute, j'ai eu cette erreur dans le fichier journal. 

enter image description here

!ENTRY org.Eclipse.equinox.ds 4 0 2013-01-16 13:27:59.132
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "org.Eclipse.equinox.ds_1.4.0.v20120522-1841 [3]" could not be resolved. Reason: Missing Constraint: Import-Package: org.Eclipse.equinox.internal.util.event; version="1.0.0"
    at org.Eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.Java:1332)
    at org.Eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.Java:1316)
...

!ENTRY org.Eclipse.equinox.ds 4 0 2013-01-16 13:28:00.901
!MESSAGE [SCR] Exception while activating instance org.Eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager@6b8d6157 of component org.Eclipse.e4.ui.css.swt.theme  
!STACK 0
Java.lang.NoClassDefFoundError: org/Eclipse/swt/widgets/Display
    at Java.lang.Class.getDeclaredMethods0(Native Method)
    at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2442)

Si je me réfère à cet article , je comprends que j’ai une version plus récente d’un plug-in sans ses dépendances et que quelque chose ne va pas dans le chemin d’exécution. Cependant, je ne sais pas exactement ce qui pourrait causer cette erreur. 

Quel est le problème? Pourquoi cette erreur ne survient-elle que lorsque je l'exécute en autonome?

AJOUTÉE

J'ai un fichier build.properties

output.. = bin/
bin.includes = META-INF/,\
               plugin.xml,\
               .
source.. = src/

C'est le fichier MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Refactorer
Bundle-SymbolicName: edu.utexas.seal.refactorer;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: edu.utexas.seal.refactorer.Activator
Bundle-Vendor: PROSSEEK
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Require-Bundle: org.Eclipse.core.runtime;bundle-version="3.8.0",
 org.Eclipse.jdt;bundle-version="3.8.0",
 org.Eclipse.jdt.core;bundle-version="3.8.2",
 org.Eclipse.core.resources;bundle-version="3.8.1",
 org.Eclipse.text;bundle-version="3.5.200",
 org.Eclipse.jdt.ui;bundle-version="3.8.1",
 org.Eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.Eclipse.ltk.ui.refactoring;bundle-version="3.7.0",
 org.Eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.Eclipse.ltk.core.refactoring;bundle-version="3.6.0",
 org.Eclipse.jface.text;bundle-version="3.8.1",
 org.Eclipse.core.expressions;bundle-version="3.4.401",
 org.Eclipse.core.externaltools;bundle-version="1.0.100",
 org.Eclipse.jface;bundle-version="3.8.101",
 edu.utexas.seal.utilities;bundle-version="1.0.0",
 org.Eclipse.core.filebuffers;bundle-version="3.5.200"
Bundle-ClassPath: .
Export-Package: edu.utexas.seal.refactorer

Je n'ai qu'un seul élément: "." dans Bundle-ClassPath.

11
prosseek

Org.Eclipse.equinox.util manquant

J'ai d'abord recompilé le projet, puis vérifié que je disposais de tous les plug-ins requis à partir des réclamations du fichier journal, puis que je trouvais qu'il me manquait le org.Eclipse.equinox.util. Je suppose qu'il aurait dû être inclus automatiquement. Après l'inclusion, certaines des erreurs ont disparu et j'ai constaté que j'avais deux autres erreurs. 

enter image description here

La question de l'environnement d'exécution

J'ai configuré "l'environnement d'exécution" en tant que JavaSE-1.5, ce qui posait un problème, car Java ne pouvait pas reconnaître que @Override était à l'origine des erreurs "Doit se substituer à une méthode de superclasse".

enter image description hereenter image description here

J'ai eu un indice de ce site.

Erreurs 'Doit se substituer à une méthode de superclasse' après l'importation d'un projet dans Eclipse

Niveau d'exécution

J'ai également dû changer le fichier /Eclipse/configuration/config.ini.

osgi.bundles=org.Eclipse.equinox.common@2:start,org.Eclipse.update.configurator@3:
start,org.Eclipse.equinox.ds@3 <-- (From 2 to 3) 
:start,org.Eclipse.core.runtime@start

Je ne sais pas si c'est un bug Eclipse ou non, j'ai eu un indice de ce site .

Quelques conseils que j'ai trouvés utiles

  • -consoleLog était vraiment utile, car je n'avais pas à ouvrir le fichier journal tout le temps. 
  • Cet article m'a donné une idée de la façon de résoudre le problème. 
  • J'imagine qu'une fois que le RCP Eclipse fonctionne sur Eclipse IDE en tant que produit, nous devrions avoir un RCP autonome. Sinon, les problèmes devraient être liés à la configuration et faire la différence entre IDE et autonome. 
7
prosseek

Il est également possible d'ajouter le paquet manquant via une configuration de dépendance supplémentaire, directement au paquet défaillant:

<plugin>
<groupId>org.Eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
  <dependency-resolution>
   <extraRequirements>
    <requirement>
     <type>Eclipse-plugin</type>
     <id>org.Eclipse.jface.text</id>
     <versionRange>0.0.0</versionRange>
   </requirement>
  </extraRequirements>
 </dependency-resolution>
</configuration>
</plugin>
1
Sumit Singh

Vous devez ajouter la même chose à votre fichier feature.xml. Une fois que vous avez ajouté la même chose, nettoyez le projet et essayez de le reconstruire. Je suis sûr que cela résoudra ce problème. 

0
Cjo