无法从 Eclipse Oxygen 工作区中删除项目

Unable to delete project from Eclipse Oxygen workspace

尝试从 Eclipse Oxygen 中删除项目时,没有任何反应,并且在日志中写入异常。 我只需在包资源管理器中右键单击一个项目,然后选择 'delete' 选项。我正在使用 Eclipse Oxygen.1a (4.7.1a)。这是完整的 build 信息:

Eclipse 平台
版本:Oxygen.1a (4.7.1a)
Build id: M20171009-0410
OS: Linux, v.4.13.0-19-generic, x86_64 / gtk 3.22.25

这是一个示例堆栈跟踪:

!ENTRY org.eclipse.ui 4 0 2017-12-20 12:40:25.379
!MESSAGE 未处理的事件循环异常
!堆栈 0
org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
        在 org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65)
        在 org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
        在 org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
        在 org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
        在 org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
        在 org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
        在 org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(参数化Command.java:487)
        在 org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
        在 org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommandInContext(LegacyHandlerService.java:442)
        在 org.eclipse.ui.internal.ide.actions.LTKLauncher.运行Command(LTKLauncher.java:96)
        在 org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(LTKLauncher.java:48)
        在 org.eclipse.ui.actions.DeleteResourceAction.运行(DeleteResourceAction.java:449)
        在 org.eclipse.jdt.internal.ui.refactoring.reorg.DeleteAction.运行(DeleteAction.java:194)
        在 org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:271)
        在 org.eclipse.jdt.ui.actions.SelectionDispatchAction.运行(SelectionDispatchAction.java:249)
        在 org.eclipse.jface.action.Action.运行WithEvent(Action.java:473)
        在 org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)
        在 org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:397)
        在 org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
        在 org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
        在 org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
        在 org.eclipse.swt.widgets.Display.运行DeferredEvents(Display.java:4522)
        在 org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4107)
        在 org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
        在 org.eclipse.core.databinding.observable.Realm.运行WithDefault(Realm.java:336)
        在 org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.运行(PartRenderingEngine.java:1039)
        在 org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
        在 org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
        在 org.eclipse.core.databinding.observable.Realm.运行WithDefault(Realm.java:336)
        在 org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
        在 org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
        在 org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
        在 org.eclipse.equinox.internal.app.EclipseAppHandle.运行(EclipseAppHandle.java:196)
        在 org.eclipse.core.运行time.internal.adaptor.EclipseAppLauncher.运行Application(EclipseAppLauncher.java:134)
        在 org.eclipse.core.运行time.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        在 org.eclipse.core.运行time.adaptor.EclipseStarter.运行(EclipseStarter.java:388)
        在 org.eclipse.core.运行time.adaptor.EclipseStarter.运行(EclipseStarter.java:243)
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        在 java.lang.reflect.Method.invoke(Method.java:498)
        在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
        在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
        在 org.eclipse.equinox.launcher.Main.运行(Main.java:1499)
        在 org.eclipse.equinox.launcher.Main.main(Main.java:1472)
原因:java.lang.NullPointerException
        在 org.eclipse.ltk.ui.refactoring.resource.DeleteResourcesWizard$DeleteResourcesRefactoringConfigurationPage.createControl(DeleteResourcesWizard.java:93)
        在 org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.createContents(RefactoringWizardDialog2.java:627)
        在 org.eclipse.jface.window.Window.create(Window.java:426)
        在 org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1096)
        在 org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:179)
        在 org.eclipse.swt.custom.BusyIndi​​cator.showWhile(BusyIndicator.java:70)
        在 org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.运行(RefactoringWizardOpenOperation.java:203)
        在 org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.运行(RefactoringWizardOpenOperation.java:122)
        在 org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(DeleteResourcesHandler.java:41)
        在 org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291)
        在 org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        在 java.lang.reflect.Method.invoke(Method.java:498)
        在 org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
        ... 还有 44 个

任何ide如何解决这个问题?或者任何解决方法?

因为我怀疑问题与 GUI 有关,所以我尝试 运行 使用 GTK 2 而不是 GTK 3 的 eclipse。所以我将以下行添加到 eclipse.ini :

--launcher.GTK_version
2

问题就解决了。我可以再次毫无问题地删除项目。
这是我的完整构建信息:

Eclipse Platform
Version: Oxygen.1a (4.7.1a)
Build id: M20171009-0410
OS: Linux, v.4.13.0-19-generic, x86_64 / gtk 2.24.31

这是一个已修复的错误(我猜将在 oxygen.3 中)。它与解析 "question" 图标有关。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=528984