我读了很多关于OSGI和Android的想法,但我的问题仍然没有答案。我现在正在使用基本的equinox作为OSGI实现的桌面小应用程序上工作。对于常见功能,我创建一个自己的OSGI-Bundle并使用服务注册表来获取实现,其余的是正常的pojo。
我想问一下,用apache-felix可以在android上运行正常的OSGI-Bundles吗?
我问,因为我试图在Android上启动apache felix但我仍然得到一个例外: java.lang.NoClassDefFoundError:org / apache / felix / main / Main
非常感谢
答案 0 :(得分:1)
查看EZDroid
(另请注意,ProSyst有一个android OSGi framework,但我不确定它是否是你所要求的Felix)
一些链接:
答案 1 :(得分:1)
您使用的是正确版本的Apache-Felix吗?在Android上需要将所有jar初步转换为dex格式。这是Android的Dalvik VM理解的唯一格式,否则你最终会得到这个java.lang.NoClassDefFoundError。
答案 2 :(得分:1)
关于Android上Felix的位置,将它放在/ data文件夹和/ sdcard之间存在显着差异。不太熟悉Felix for Android的最新端口,但他们可能需要一些基于位置的权限。 我建议在这里发布Logcat的一部分,除了你观察到的例外,以便尝试为你提供解决方案。 正如您所说,由于您的捆绑包不依赖于Felix特定的API,我建议您查看适用于Android的ProSyst OSGi Runtime。它在Android电子市场免费提供:OSGi Mobile。您可以将捆绑包放在SD卡上,然后通过UI安装它们。希望有所帮助!