webentwicklung-frage-antwort-db.com.de

Das Bundle XYZ konnte nicht aufgelöst werden. Grund: Fehlende Einschränkung: Import-Paket: ABC; version = "1.0.0" Fehler in RCP-Standalone ohne Headless

Ich arbeite an Standalone-Headless-RCP . Es funktioniert problemlos, wenn ich die Anwendung und das Produkt in der Eclipse-IDE ausführe, aber beim Exportieren und Ausführen habe ich diesen Fehler in der Protokolldatei erhalten. 

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 [email protected]6157 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)

Aus diesem Beitrag verstehe ich, dass ich eine neuere Version eines Plug-Ins ohne seine Abhängigkeiten habe und dass im Laufzeitpfad etwas nicht stimmt. Ich bin mir jedoch nicht sicher, was genau diesen Fehler verursachen könnte. 

Was könnte falsch sein? Warum habe ich diesen Fehler nur, wenn ich ihn als Standalone ausführte?

HINZUGEFÜGT

Ich habe die Datei build.properties

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

Dies ist die MANIFEST.MF-Datei

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

Ich habe nur einen Artikel: "." in Bundle-ClassPath.

11
prosseek

Fehlende org.Eclipse.equinox.util

Ich habe das Projekt zuerst neu kompiliert und dann überprüft, ob ich alle erforderlichen Plug-Ins aus den Reklamationen in der Protokolldatei habe. Dann habe ich festgestellt, dass mir der org.Eclipse.equinox.util fehlte. Ich denke, er sollte automatisch eingefügt worden sein. Nach dem Include sind einige der Fehler einfach weg und ich habe festgestellt, dass ich zwei weitere Fehler habe. 

enter image description here

Das Problem der Ausführungsumgebung

Ich habe die "Ausführungsumgebung" als JavaSE-1.5 eingerichtet, und dies war ein Problem, da Java @Override nicht erkennen konnte, um die "Must Override a Supclass Method" -Fehler zu verursachen.

enter image description hereenter image description here

Ich habe einen Hinweis von dieser Seite.

'Eine Superklassenmethode muss überschrieben werden' Fehler nach dem Importieren eines Projekts in Eclipse

Laufzeitebene

Ich musste auch die /Eclipse/configuration/config.ini-Datei ändern.

[email protected]:start,[email protected]:
start,[email protected] <-- (From 2 to 3) 
:start,[email protected]

Ich weiß nicht, ob es sich um einen Eclipse-Bug handelt oder nicht, ich habe einen Hinweis von dieser Seite .

Einige Tipps, die ich nützlich fand

  • -consoleLog war wirklich nützlich, da ich die Protokolldatei nicht ständig öffnen musste. 
  • Dieser Artikel gab mir eine Anleitung, wie man das Problem lösen kann. 
  • Ich denke, sobald das Eclipse-RCP an Eclipse IDE als Produkt arbeitet, sollten wir ein eigenständiges RCP erhalten. Wenn nicht, sollten die Probleme Konfigurationsprobleme sein, die zwischen IDE und Standalone unterscheiden. 
7
prosseek

Es besteht auch die Möglichkeit, das fehlende Bundle über eine zusätzliche Abhängigkeitskonfiguration direkt zum fehlerhaften Bundle hinzuzufügen:

<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

Sie müssen dasselbe zu Ihrer Datei feature.xml hinzufügen. Wenn Sie dasselbe hinzugefügt haben, bereinigen Sie das Projekt und versuchen Sie, es erneut zu erstellen. Ich bin sicher, dass dieses Problem behoben wird. 

0
Cjo