我不知道我做了什么,但曾经工作的东西不再有效。
我正在调用一个返回特定类实例的函数,称之为MyClass。 MyClass依赖于另一个类,即在包中定义的MyOtherClass。这个包(称为com.myotherpackage)包含在我的插件清单的依赖项部分中列出的插件(称为com.myotherplugin)中。当我调用该函数时,我收到错误“类型com.myotherpackage.MyOtherClass无法解析。它是从所需的.class文件间接引用的。”
我可以做些什么来导致此错误突然显示以前错误不存在且我的代码运行得很好?
我一直在寻找解决方案。他们似乎都专注于非插件环境。一个这样的解决方案有一些我可以映射到插件的东西。它建议我配置我的构建路径(右键单击项目 - >构建路径 - >配置构建路径)。在此对话框中,我选择了Libraries选项卡,单击Plug-in Dependencies旁边的箭头,然后单击com.myotherplugin旁边的箭头,然后单击Access rules旁边的箭头,发现旁边有一个选中的复选框单词“Accessible:com / myotherpackage / *”。因此,虽然我没有从该视图中获得MyOtherClass包含在该包中的信息,但该包似乎可用。
任何想法都会受到赞赏。
答案 0 :(得分:1)
您必须在com.myotherpackage
的清单中导出com.myotherplugin
。您可以在Runtime page上的Plug-in Manifest Editor中执行此操作。
Eclipse通常会为这类错误提供Quick Fix,这会在清单文件中进行必要的更改。
答案 1 :(得分:0)
我不喜欢这个答案,但是重新安装IDE就可以了(即从源代码中解压缩)。请注意,我的IDE实例附带了com.myotherplugin。
我不知道我打破了什么。