首页 > 解决方案 > NoClassDefFoundError:org/eclipse/search/ui/text/TextSearchQueryProvider

问题描述

我正在为 Eclipse 编写一个插件。打电话时TextSearchQueryProvider sqProvider = TextSearchQueryProvider.getPreferred();,我得到一个NoClassDefFoundError

有趣的是,我只在导出的 jar 插件上得到这个,而不是在调试插件时。我想,这可能与导出org.eclipse.search-plugin 有关,但该插件是如此基本,以至于没有它 Eclipse 无论如何都无法运行。所以我想插件应该在那里。

我正在运行 eclipse photon (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”依赖关系,这对我来说意味着插件已成功链接?

标签: eclipseeclipse-plugin

解决方案


在我使用另一个版本的后缀导出插件后,问题消失了。我最初将后缀称为“beta”。在给它一个带有日期的新后缀后,依赖树似乎可以正常工作。可能是原始包是错误的并且在 MANIFEST 中配置错误,只有在使用不同的名称重新导出后,pacakge 依赖项才会重新正确评估。


推荐阅读