【问题标题】:Why does this OSGi Import-Package not work?为什么这个 OSGi 导入包不起作用?
【发布时间】:2015-11-07 21:13:55
【问题描述】:

我正在阅读这个 OSGi 教程(使用 Eclipse,安装了 PDE 插件):

http://www.vogella.com/tutorials/OSGi/article.html

直到任务 10 一切正常。但是现在我有一个问题:

"Import-Package: org.osgi.framework;version="1.3.0"(它是自动生成的,可能是因为生成了 Activator 类)显示以下错误: "没有可用的捆绑导出包 'org.osgi.framework'"

在 Activator 类中,我还遇到了 BundleActivator 和 BundleContext 等类的解析错误。我通过使用外部 jar (org.eclipse.osgi) 解决了这个问题,但我很确定这不是正确的方法,因为你应该在 MANIFEST 文件中声明任何依赖项。

但是如何添加 org.eclipse.osgi jar 以便清单中的导入包行就足够了?

我的整个清单文件:

Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Internal Bundle-SymbolicName: com.osgi.beispiel.one.bundle.internal Bundle-Version: 1.0.0.qualifier Bundle-Activator: com.osgi.beispiel.one.bundle.Activator Bundle-Vendor: OSGI Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy

【问题讨论】:

    标签: java eclipse osgi


    【解决方案1】:

    这是一个 Eclipse 配置问题;默认情况下,Eclipse 定义了一个用于定位包的路径 - 此路径可能不包含您的项目所需的包,因此请确保添加可以找到相关包的路径:

    【讨论】:

      【解决方案2】:

      我的工作区中“没有可用的捆绑导出包 'org.osgi.framework'”的原因是 ${eclipse_home} 无效。 “窗口 - 首选项 - 目标平台 - 正在运行的平台”的复选框标有红色图标。我跟着“Edit...”,选择“${eclipse_home}”,“Edit...”,并勾选“This install uses the default configuration area”。用“完成”分别离开对话框后。 “OK”,问题解决了。

      【讨论】:

        【解决方案3】:

        org.eclipse.osgi 添加到 MANIFEST.MF 编辑器的 Dependencies 选项卡的“Required Plugins”部分(这会将“Require-Bundle”行添加到 MANIFEST.MF)。

        【讨论】:

        • 感谢您的快速回答。我刚刚第三次重新安装它,因为某种原因,这次它在创建项目时自动选择了org.eclipse.core.runtime插件,其中还包括你提到的插件。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-22
        • 2013-10-31
        • 2023-04-09
        • 2020-12-06
        • 2017-08-05
        • 2022-08-02
        相关资源
        最近更新 更多