【问题标题】:SWT error with eclispe Mars in RCP application java.lang.NoSuchMethodError: org.eclipse.swt.widgets.ToolBar.requestLayout()VRCP 应用程序 java.lang.NoSuchMethodError 中 eclispe Mars 的 SWT 错误:org.eclipse.swt.widgets.ToolBar.requestLayout()V
【发布时间】:2017-07-19 14:49:13
【问题描述】:

我们有一个现有的 RCP 应用程序可以与 eclipse Luna 完美配合。我们正计划将 eclipse 迁移到 Mars。在将 eclipse 迁移到 MARS 时,我们在启动工具时遇到 SWT 异常,并且工具窗口没有正确启动.

请帮助解决此问题。 异常堆栈跟踪如下。

java.lang.NoSuchMethodError: org.eclipse.swt.widgets.Control.requestLayout()V 在 org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.subscribeChildrenHandler(PartRenderingEngine.java:301) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 在 org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier$DIEventHandler.handleEvent(EventObjectSupplier.java:80) 在 org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201) 在 org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) 在 org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)

【问题讨论】:

    标签: java eclipse rcp eclipse-mars


    【解决方案1】:

    堆栈跟踪显示您正在使用来自 Eclipse Neon (4.6) 的 PartRenderingEngine。这需要 SWT 代码中的 Control.requestLayout 方法。这是一种比较新的方法,你使用的SWT版本没有。

    从您的问题中不清楚您是如何设法最终得到这样的 RCP。您必须从单个 Eclipse 版本构建 RCP,您不能安全地混合来自不同版本的代码。

    【讨论】:

    • 感谢您的重播。正如你提到的,这是一个插件依赖问题,我能够完全解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2011-01-26
    相关资源
    最近更新 更多