2013-08-24 5 views
10

Ich schreibe ein Eclipse-Plugin mit Eclipse RCP (Kepler). Alles funktionierte gut, bis ich letzte Nacht plötzlich Null-Zeiger-Ausnahmen bekam, als ich versuchte, mein Plugin zu testen. Hier ist ein snippit der Stacktrace:Fehler beim Starten des Plugins, fehlende Einschränkung javax.xml.bind

!ENTRY org.eclipse.ui.workbench 4 2 2013-08-24 08:36:17.616 
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench". 
!STACK 0 
java.lang.NullPointerException 
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.getLastMigration(MigrationSupport.java:229) 
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.baseChangedSinceLastPresentationOfWizard(MigrationSupport.java:190) 
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.performMigration(MigrationSupport.java:69) 
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdateScheduler.earlyStartup(AutomaticUpdateScheduler.java:89) 
at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87) 
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2552) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 
java.lang.NullPointerException 
at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPlatform.java:354) 
at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291) 
at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830) 
at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285) 
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200) 
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231) 
at org.eclipse.ui.statushandlers.StatusManager$StatusManagerLogListener.logging(StatusManager.java:305) 
at org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(RuntimeLog.java:160) 
at org.eclipse.core.internal.runtime.PlatformLogWriter.logged(PlatformLogWriter.java:100) 
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86) 
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205) 
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178) 
at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65) 
at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87) 
at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54) 
at org.eclipse.core.internal.runtime.PlatformLogWriter.logging(PlatformLogWriter.java:43) 
at org.eclipse.core.internal.runtime.RuntimeLog.log(RuntimeLog.java:96) 
at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:71) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44) 
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2552) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Um zu versuchen, herauszufinden, was los sein könnte auf die ich für mein Plugin in die Startkonfiguration ging und angeklickt „Validate Plug-in“ und erhält folgende Fehlermeldung:

org.apache.xmlrpc 
    Missing Constraint: Import-package: javax.xml.bind; version="0.0.0" 

missing constraint

Könnte dies der Grund, warum mein Plugin startet versagt? Wenn ja, wie repariere ich es?

Danke

Antwort

3

Sie direkt auf Ihrem Projekt klicken können, gehen Sie wie zu starten -> Ausführen Konfigurationen und Registerkarte Plug-Ins. Klicken Sie hier auf die Schaltfläche Add required plugins und das sollte Ihr Validierungsproblem automatisch lösen.

+7

Ich habe die gleiche Fehlermeldung für Plugin-Entwicklung in Neon .2, und die Schaltfläche "erforderliche Plugins hinzufügen" hat das Problem nicht behoben. –

+0

@aro_tech Ich bekomme gerade das gleiche Problem mit Neon. Vielleicht hat es etwas mit einem letzten Update zu einem Plugin zu tun. – Justin

1

Wenn Sie eine RCP E4-Anwendung mit Funktionen testen, fügen Sie org.eclipse.e4.rcp zu Ihren Abhängigkeiten im Bereich Produkt -> Abhängigkeiten hinzu. Und "hinzufügen erforderlich". Das löste mein Problem

+0

Bedeutet "product-> dependencies", dass ich den Editor der MANIFEST.MF Datei des Plugins benutzen muss? (Ich kann die Abhängigkeit dort nicht hinzufügen.) Oder haben Sie eine zusätzliche Produkt-/Funktionsdefinition? – Stefan

3

Wenn Sie Eclipse 2.5.2 installiert dann ist es ein bekannter Fehler ist: https://bugs.eclipse.org/bugs/show_bug.cgi?id=456174

Um dies zu beheben, aktualisieren Sie auf die neueste Version dieses Update-Website mit: http://download.eclipse.org/rt/eclipselink/updates/ eine neuere Version wählen als 2,5. 2

HINWEIS: Ich musste das Kontrollkästchen "Installierte Version ausblenden" deaktivieren, um nach dem Hinzufügen der Update-Site zu installieren, da es schien, dass es installiert war, obwohl es die Software NICHT installiert zeigte, wenn ich die Box deaktivierte. Sobald Sie die neuere Version installiert haben neu starten Sie Eclipse und dann: 1. Wählen Sie Menü: Run -> Ausführen Konfigurationen 2. Klicken Sie auf die Schaltfläche „Hinzufügen Required Bundles“

Es sollte alles funktionieren nach diesem

+0

Es funktioniert, danke! – salee

4

ich hatte folgende Plugins in meiner Lauf-Konfiguration „Eclipse-Anwendung“ zu entfernen, um loszuwerden, die xmlrpc Warnung:

org.apache.xmlrpc 
org.eclipse.mylyn.bugzilla.core 
org.eclipse.mylyn.bugzilla.ui 
org.eclipse.mylyn.commons.xmlrpc 

die xmlrpc Warnung occures bereits mit

  • Fresh Download von Eclipse RCP, Oxygen
  • Neues Plugin mit der "Hallo Welt, Command" Vorlage
  • Windows7
  • erstellt

Da Sauerstoff des xmlrpc Problem in der Konsole nicht auftritt, sondern als ein extra Popup-Fenster, das finde ich noch nerviger und verwirrender. Die Konsole zeigt folgende zusätzliche Ausgabe:

SLF4J: Class path contains multiple SLF4J bindings. 
    SLF4J: Found binding in [bundleresource://555.fwk1347294617:1/org/slf4j/impl/StaticLoggerBinder.class] 
    SLF4J: Found binding in [bundleresource://555.fwk1347294617:2/org/slf4j/impl/StaticLoggerBinder.class] 
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
    SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] 
    08:49:41.650 [Worker-1] INFO c.g.t.t.d.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read. 
    !SESSION 2017-09-04 08:49:32.846 ----------------------------------------------- 
    eclipse.buildId=4.7.0.I20170612-0950 
    java.version=1.8.0_144 
    java.vendor=Oracle Corporation 
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE 
    Framework arguments: -product org.eclipse.platform.ide 
    Command-line arguments: -product org.eclipse.platform.ide -data D:\eclipse\workspace/../runtime-EclipseApplication -dev file:D:/eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog 

    !ENTRY org.eclipse.egit.ui 2 0 2017-09-04 08:49:41.847 
    !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git 
    user global configuration and to define the default location to store repositories: 'C:\Users\eis'. If this is 
    not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and 
    EGit might behave differently since they see different configuration options. 
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. 

Could this be the reason why launching my plugin is failing?

Ich denke nicht.Mein Plugin scheint von diesen Warnungen nicht beeinflusst zu sein.

  • Die git Warnung in den Eclipse-Team-Einstellungen deaktiviert werden, da die Warnung selbst schlägt.

  • kann die slf4j Warnung durch Entfernen des Plugin ch.qos.logback.slf4j aufgelöst werden, siehe auch multiple slf4j bindings in Eclipse RCP Plugin

Wenn Sie die Auswahl manuell Plugin ändern Sie bitte die Validate Plug-in Funktion vorsichtig und benutzen, um sicherzustellen, dass Sie keine anderen Abhängigkeitsprobleme erstellen.

Wenn Sie zusätzliche Plugins installiert haben, sehen Sie möglicherweise noch mehr Warnungen, z. von checkstyle:

!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:32.926 
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points. 
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:32.926 
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs' 

!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:33.622 
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points. 
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:33.622 
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs' 

=> Es ist eine Art Chaos. Daher kann es sinnvoll sein, eine Kopie der "Standard" -Warnungen zu erstellen, die ignoriert werden können. Dann ist es einfacher zu sehen, ob eine Warnung zu Ihrem eigenen Plugin/den letzten Änderungen gehört.

bearbeiten

reichte ich einen Fehler für die check Warnungen und dank Lars Ködderitzsch werden sie mit Version 8.5.0 behoben werden: https://sourceforge.net/p/eclipse-cs/bugs/428/

+0

Das ist tatsächlich der Fall für meinen Fall. Ich benutze Eclypse Version - Leon. Dies könnte für einige andere nützlich sein. Danke, Stefan. – ClickBright

Verwandte Themen