我正在为Eclipse编写插件。呼叫TextSearchQueryProvider sqProvider = TextSearchQueryProvider.getPreferred();
时,我得到一个NoClassDefFoundError
。
有趣的是,我只在导出的jar插件上得到它,而不是在调试插件时得到。我认为,这可能与导出org.eclipse.search
插件有关,但是该插件是如此基础,以至于没有它,eclipse就无法运行。所以我想插件应该在那里。
我正在运行蚀光子(4.8.0)。
更多说明:
我在org.eclipse.search
中将MANIFEST.MF
指定为依赖项:
Require-Bundle: javax.inject,
org.eclipse.search;bundle-version="3.0.0";visibility:=reexport,
....
我已导入org.eclipse.search.ui.text.TextSearchQueryProvider
我需要做其他我不知道的事情吗?
添加: 与插件相关的视图没有显示任何明显的问题。 具体来说,版本“ 3.11.200.v20180503-1856”满足了“ org.eclipse.search”的依赖性,对我而言,这意味着插件已成功链接?
答案 0 :(得分:0)
在我用另一个版本的后缀导出插件后,问题消失了。 我最初将postfix称为“ beta”。给它加上日期后缀后, 依赖关系树似乎正常工作。可能是原始软件包是错误的,并且在清单中配置错误,并且只有在使用其他名称重新导出后,才能正确地重新评估pacakge依赖项。