RCP应用程序中的eclispe Mars的SWT错误java.lang.NoSuchMethodError:org.eclipse.swt.widgets.ToolBar.requestLayout()V

时间:2017-07-19 04:49:25

标签: java eclipse rcp eclipse-mars

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

请帮助解决此问题。 下面给出了异常堆栈跟踪。

java.lang.NoSuchMethodError:org.eclipse.swt.widgets.Control.requestLayout()V        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.subscribeChildrenHandler(PartRenderingEngine.java:301)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)        at java.lang.reflect.Method.invoke(Unknown Source)        在org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)        at org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier $ DIEventHandler.handleEvent(EventObjectSupplier.java:80)        at 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)

1 个答案:

答案 0 :(得分:0)

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

从您的问题中不清楚您是如何设法最终使用此类RCP的。您必须从单个Eclipse版本构建RCP,您无法安全地混合来自不同版本的代码。