0

我们正在开发一个包含 NB 模块和 OSGi 模块的 Netbeans RCP 应用程序。在运行开发的 RCP 应用程序时,它会在 ServiceTracker(ServiceTrackerCustomizer) 构造函数上给出 NoSuchMethodFoundException。

奇怪的是,当这个应用程序被打包为 .Zip 发行版并从 .Zip 包中提取和执行时,它可以工作。此外,此应用程序在某些机器上运行良好(具有相同的版本和配置),它会在其他机器上给出相同的错误。

有什么解决办法吗?我们是否在 RCP 和 OSGi 配置中犯了错误,或者这是 Netbeans 安装问题?

我一直在检查这个问题很长时间,但我一直无法找到解决方案。

配置:

Windows 8 x64 Netbeans 7.3 或 7.3.1(两个版本中的任何一个)

谢谢...

4

1 回答 1

0

ServiceTracker在 4.3 版中添加了一个额外的构造函数(以 ajava.lang.Class作为第二个参数的构造函数)。您可能针对比 NetBeans 支持的更高版本的 OSGi 开发包。

通常,通过适当的版本控制可以避免这种错误。你的包应该导入 org.osgi.util.tracker 包,其版本范围[1.5,2.0)如下:

Import-Package: org.osgi.util.tracker; version="[1.5,2.0)"

如果 NetBeans 不支持 OSGi R4.3(我不知道自己是否支持),那么您应该针对 R4.2 进行开发并避免使用 4.3 中添加的其他方法。

于 2013-07-11T11:55:59.857 回答