18

我正在使用 Eclipse RCP (Kepler) 编写一个 Eclipse 插件。一切正常,直到昨晚突然我在尝试测试我的插件时开始收到空指针异常。这是堆栈跟踪的片段:

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

为了尝试找出可能发生的情况,我转到插件的启动配置并单击“验证插件”并收到以下错误:

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

缺少约束

这可能是启动我的插件失败的原因吗?如果是这样,我该如何解决?

谢谢

4

6 回答 6

8

You can right click on your project, go to Run as -> Run configurations and to Plug-ins tab. Here click on the Add required plug-ins button and this should solve your validation problem automatically.

于 2013-08-26T07:44:55.423 回答
8

我必须在我的运行配置“Eclipse 应用程序”中删除以下插件以消除xmlrpc 警告

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

xmlrpc 警告已经发生

  • Eclipse RCP,氧气的新下载
  • 使用“Hello World, Command”模板创建的新插件
  • Windows 7的

由于 Oxygen xmlrpc 问题不会出现在控制台中,而是作为一个额外的弹出窗口出现,我觉得这更令人讨厌和困惑。控制台显示以下附加输出:

 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. 

这可能是启动我的插件失败的原因吗?

我猜不是。我的插件似乎不受这些警告的影响。

如果您手动更改插件选择,请小心并使用Validate Plug-ins功能确保您不会产生其他依赖问题。

如果您安装了其他插件,您可能会看到更多警告,例如来自 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'

=>有点乱。因此,复制可以忽略的“默认”警告可能是个好主意。然后更容易查看警告是否与您自己的插件/最近的更改有关。

编辑

我为 checkstyle 警告提交了一个错误,感谢 Lars Koedderitzsch,它们将在 8.5.0 版中得到解决: https ://sourceforge.net/p/eclipse-cs/bugs/428/

于 2017-09-04T06:38:45.967 回答
5

在尝试了不同的东西之后:我做了:

帮助>安装新软件

并添加了这个存储库:http: //download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/ 从轨道获取的存储库:https ://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/

选择与.javax、xml流相关的那些

它对我有用。Eclipse 建模工具版本:2019-03 (4.11.0) win 10

于 2019-04-23T11:29:51.980 回答
3

如果您安装了 EclipseLink 2.5.2,那么这是一个已知错误:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=456174

要修复,请使用此更新站点更新到最新版本:http: //download.eclipse.org/rt/eclipselink/updates/ 选择比 2.5.2 更新的版本

注意:在添加更新站点后,我必须取消选中“隐藏已安装版本”复选框才能安装,因为它似乎认为它已安装,尽管当我取消选中该框时它显示软件未安装。安装新版本后,重新启动 Eclipse,然后: 1. 选择菜单:运行 -> 运行配置 2. 单击“添加所需捆绑包”按钮

之后应该一切正常

于 2017-01-13T16:44:51.800 回答
1

如果您正在尝试具有功能的 RCP E4 应用程序,请尝试将 org.eclipse.e4.rcp 添加到产品 -> 依赖项窗格中的依赖项中。并执行“添加必需”。这解决了我的问题

于 2015-02-12T15:31:42.057 回答
0

如果您只是想忽略这些错误,您可以转到Run > Run Configurations > Plug-ins,并取消选中底部的“ Validate Plugin-ins before launch ”。

于 2021-08-24T00:18:58.667 回答