Eclipse 插件试图从已删除的插件项目中加载图标

问题描述

起初我使用 Eclipse 新项目向导创建了 Helloworld 插件。我能够成功运行它。然后我删除了该项目(也选中了“删除磁盘上的内容”)。

之后,我创建了一个使用 4.x API 查看贡献 插件项目。 运行插件时,显示以下消息

!MESSAGE Removing PartDescriptorImpl with the "viewplugin.views.SampleView" id and the "Sample View" label.It points to the non available "bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" class. Bundle might have been uninstalled

但是打开了一个新的 eclipse 窗口,当我尝试打开视图时,抛出了异常并且没有显示视图的内容

!ENTRY org.eclipse.core.runtime 4 0 2021-04-02 16:08:38.367
!MESSAGE Invalid input url:platform:/plugin/Helloworld/icons/Sample.png
!STACK 0
java.io.IOException: Unable to resolve plug-in "Helloworld".
    at org.eclipse.core.internal.runtime.PlatformURLPluginConnection.parse(PlatformURLPluginConnection.java:64)
    at org.eclipse.core.internal.runtime.FindSupport.find(FindSupport.java:293)
    at org.eclipse.core.runtime.FileLocator.find(FileLocator.java:206)

!MESSAGE The image Could not be loaded: URLImageDescriptor(platform:/plugin/Helloworld/icons/Sample.png)
!STACK 0
org.eclipse.jface.resource.DeviceResourceException: Unable to create resource URLImageDescriptor(platform:/plugin/Helloworld/icons/Sample.png)
    at org.eclipse.jface.resource.ImageDescriptor.createResource(ImageDescriptor.java:229)
    at org.eclipse.jface.resource.DeviceResourceManager.allocate(DeviceResourceManager.java:55)
    at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:88)

(还没有粘贴完整的堆栈跟踪)

堆栈跟踪中提到的位置是已删除的 Helloworld 项目的位置。为什么 Eclipse 会尝试从以前的项目中加载图标?

我尝试重新启动工作区,也尝试创建一个新的工作区。但是还是会报错。

注意:我没有对模板插件进行任何更改。另外,hello world模板项目也没有问题

解决方法

默认情况下,工作区数据下指定的位置为${workspace_loc}/../runtime-EclipseApplication。这以某种方式导致先前的项目也被加载。 enter image description here

我可以按照以下步骤解决此问题:

  1. 点击启动配置中“工作区数据”下的 Workspace 选项。
  2. 选择合适的插件项目。
  3. 应用和运行/调试。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...