SWT error with eclispe Mars in RCP application java.lang.NoSuchMethodError: org.eclipse.swt.widgets.ToolBar.requestLayout()V
SWT error with eclispe Mars in RCP application java.lang.NoSuchMethodError: org.eclipse.swt.widgets.ToolBar.requestLayout()V
我们有一个现有的 RCP 应用程序可以完美地与 eclipse 一起工作Luna.We 正计划将 eclipse 迁移到 Mars.While 将 eclipse 迁移到 MARS 我们在启动工具和工具时遇到 SWT 异常window 未正确启动。
请帮忙解决这个问题。
下面给出了异常堆栈跟踪。
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(本机方法)
在 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)
堆栈跟踪显示您正在使用 Eclipse Neon (4.6) 中的 PartRenderingEngine
。这需要在 SWT 代码中使用 Control.requestLayout
方法。这个方法比较新,你用的SWT版本没有。
从你的问题中不清楚你是如何设法得到这样的 RCP 的。您必须从单个 Eclipse 版本构建 RCP,您不能安全地混合来自不同版本的代码。
我们有一个现有的 RCP 应用程序可以完美地与 eclipse 一起工作Luna.We 正计划将 eclipse 迁移到 Mars.While 将 eclipse 迁移到 MARS 我们在启动工具和工具时遇到 SWT 异常window 未正确启动。
请帮忙解决这个问题。 下面给出了异常堆栈跟踪。
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(本机方法) 在 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)
堆栈跟踪显示您正在使用 Eclipse Neon (4.6) 中的 PartRenderingEngine
。这需要在 SWT 代码中使用 Control.requestLayout
方法。这个方法比较新,你用的SWT版本没有。
从你的问题中不清楚你是如何设法得到这样的 RCP 的。您必须从单个 Eclipse 版本构建 RCP,您不能安全地混合来自不同版本的代码。