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

问题描述:

我们有一个现有的RCP应用程序可以很好地与eclipse Luna一起工作。我们计划迁移eclipse到Mars.While将日食迁移到MARS时,我们在启动该工具时得到了SWT异常,并且工具窗口无法正常启动。SWT错误与eclispe Mars在RCP应用程序中java.lang.NoSuchMethodError:org.eclipse.swt.widgets.ToolBar.requestLayout()V

请帮忙解决这个问题。 异常堆栈跟踪如下。

java.lang.NoSuchMethodError:org.eclipse.swt.widgets.Control.requestLayout()在org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.subscribeChildrenHandler(PartRenderingEngine.java:301)V 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明) 在java.lang.reflect.Method.invoke (Unknown Source) at 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) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) at 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)

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

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

+0

谢谢您的重播。正如你所提到的,这是一个插件依赖问题,我能够完全解决它。 – EJoe