Scout在启动SWT时崩溃

时间:2014-06-26 07:59:33

标签: java eclipse swt eclipse-scout linkageerror

我在Scout Eclipse中有一些奇怪的错误。我的大学用git推了一些锥形,然后把它拉出来。在他的计算机上一切运行良好,但在我的启动SWT时它会出错。

错误是:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2014-06-26 09:44:21.234
!MESSAGE Unable to create class'org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon' from bundle '72'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.LinkageError: loader constraint violation: when resolving method "org.eclipse.e4.ui.bindings.internal.BindingTable.addBinding(Lorg/eclipse/jface/bindings/Binding;)V" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/eclipse/e4/ui/workbench/swt/util/BindingProcessingAddon, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for the method's defining class, org/eclipse/e4/ui/bindings/internal/BindingTable, have different Class objects for the type org/eclipse/jface/bindings/Binding used in the signature
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:877)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:119)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:333)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:267)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:186)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:49)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:276)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:581)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at com.sixt.test.ldaplogintwo.ui.swt.application.Application.startSecure(Application.java:35)
at com.sixt.test.ldaplogintwo.ui.swt.application.Application$1.run(Application.java:27)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at com.sixt.test.ldaplogintwo.ui.swt.application.Application.start(Application.java:24)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "org.eclipse.e4.ui.bindings.internal.BindingTable.addBinding(Lorg/eclipse/jface/bindings/Binding;)V" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/eclipse/e4/ui/workbench/swt/util/BindingProcessingAddon, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for the method's defining class, org/eclipse/e4/ui/bindings/internal/BindingTable, have different Class objects for the type org/eclipse/jface/bindings/Binding used in the signature
at org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon.defineBinding(BindingProcessingAddon.java:184)
at org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon.defineBindingTable(BindingProcessingAddon.java:168)
at org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon.defineBindingTables(BindingProcessingAddon.java:151)
at org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon.init(BindingProcessingAddon.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
... 31 more

我真的试图让它有效但我的想法已经不多了。

3 个答案:

答案 0 :(得分:1)

==确保您使用与您的同事相同的目标平台

打开偏好设置>插件开发>目标平台。您应该具有相同的活动目标平台定义。

如果您使用运行平台作为活动目标定义,那么您应该具有相同的Eclipse IDE安装,以便能够进行比较。

==确保以相同的方式启动应用程序

打开客户端产品文件,例如:

/<your-app>.ui.swt/products/development/<app>-swt-client-dev.product

点击概览标签中测试部分中的同步链接。 (有时你需要做两次这个操作。)

使用同一部分中的运行或调试按钮启动应用程序。

Eclipse product file editor

==在您的计算机上测试其他侦察应用程序

要确定您的eclipse scout IDE安装是否正常,在其他工作区中创建测试应用程序时会发生什么?你设法开始吗?

==验证目标平台的内容

@ marko-zadravec建议验证您的目标平台中是否没有org.eclipse.jface的2个版本。

在“目标平台”首选项页面中,在列表中选择您的有效目标定义,然后点击修改按钮。

切换到内容标签。检查您是否有两个org.eclipse.jface个捆绑包。

==重新安装IDE

有时重新安装 Scout Developers的Eclipse 是解决此类问题的最快解决方案(转到Eclipse Downloads页面。)

答案 1 :(得分:1)

我遇到了同样的问题,只是想在这里注册修复程序。

我打开了位于的文件 bundles.info *<Eclipse_install_folder*>\configuration\org.eclipse.equinox.simpleconfigurator\

我搜索了 rap.jface ,删除了找到的所有内容并保存了文件。

然后Eclipse能够重新开始。

顺便说一句,我正在使用Eclipse Mars。

答案 2 :(得分:0)

我也遇到了这个问题,并通过删除客户端产品文件中的org.eclipse.rap.jface插件依赖项来修复它。

这应该可以解决问题(至少对我们来说是因为我们只有SWT客户端)。

〜SERANO