我们有一个现有的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)
答案 0 :(得分:0)
堆栈跟踪显示您正在使用Eclipse Neon(4.6)中的PartRenderingEngine
。这需要SWT代码中的Control.requestLayout
方法。这是一种相对较新的方法,您使用的SWT版本没有它。
从您的问题中不清楚您是如何设法最终使用此类RCP的。您必须从单个Eclipse版本构建RCP,您无法安全地混合来自不同版本的代码。