0

我读了很多关于 OSGI 和 Android 的想法,但我的问题仍未得到解答。我目前正在开发一个小型桌面应用程序,基本上使用 Equinox 作为 OSGI 实现。对于通用功能,我创建了一个自己的 OSGI-Bundle 并使用服务注册表来获取实现,其余的都是正常的 pojo。

我想问一下它可以在带有 apache-felix 的 android 上运行正常的 OSGI-Bundles 吗?

我问是因为我试图在 android 上启动 apache felix,但我仍然遇到异常:java.lang.NoClassDefFoundError: org/apache/felix/main/Main

非常感谢

4

3 回答 3

1

您是否使用了正确版本的 Apache-Felix?在 Android 上需要将所有 jar 初步转换为 dex 格式。这是 Android 的 Dalvik VM 能够理解的唯一格式,否则您最终会得到这个 java.lang.NoClassDefFoundError。

于 2012-05-24T12:22:29.410 回答
1

关于 Felix 在 Android 上的位置,将其放在 /data 文件夹和 /sdcard 中存在显着差异。不太熟悉 Felix for Android 的最新端口,但他们可能需要一些基于位置的权限。我建议在此处发布 Logcat 的一部分,但您观察到的例外情况除外,以便尝试为您提供解决方案。正如你所说,由于你的包不依赖于 Felix 特定的 API,我建议你检查 ProSyst OSGi Runtime for Android。它可在 Android 市场免费获得:OSGi Mobile。您可以将捆绑包放在 sdcard 上,然后通过 UI 安装它们。希望有帮助!

于 2012-06-15T07:58:23.673 回答