2017-07-19 117 views
0

我們有一個現有的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)

回答

0

堆棧跟蹤顯示您正在使用Eclipse Neon(4.6)中的PartRenderingEngine。這需要SWT代碼中的Control.requestLayout方法。這是一種相對較新的方法,您正在使用的SWT版本沒有它。

從您的問題中不清楚您是如何管理最終的RCP。您必須從單個Eclipse版本構建RCP,但不能安全地混合來自不同版本的代碼。

+0

謝謝您的重播。正如你所提到的,這是一個插件依賴問題,我能夠完全解決它。 – EJoe