我读到了很多关于OSGI和Android的想法,但我的问题仍然没有得到回答。我目前正在为Desktop开发一个小应用程序,使用basicly equinox作为OSGI实现。对于通用功能,我创建了一个自己的OSGI-Bundle,并使用服务注册表来获取实现,其余的就是普通的pojo。
我想问一下,有没有可能用apache-felix在android上运行普通的OSGI-Bundles?
我之所以问这个问题,是因为我试图在android上启动apache felix,但是仍然得到了一个异常: java.lang.NoClassDefFoundError: org/apache/felix/main/Main
非常感谢
发布于 2012-05-24 20:22:29
您是否使用了Apache-Felix的正确版本?这是要求在Android上,有所有的jars初步转换为dex格式。这是Android的Dalvik VM唯一能理解的格式,否则你最终会得到这个java.lang.NoClassDefFoundError。
发布于 2012-05-24 17:53:26
看一看EZDroid
(还请注意,ProSyst有一个android OSGi framework,但我不确定它是否如您所问的那样是Felix )
一些链接:
发布于 2012-06-15 15:58:24
关于Felix在安卓上的位置,将其放在/data文件夹和/sdcard中有很大的不同。不是真的熟悉Felix for Android的最新端口,但他们可能需要一些基于位置的权限。我建议在这里张贴你观察到的异常的Logcat的一部分,以便尝试为你提供一个解决方案。正如您所说,由于您的OSGi不依赖于Felix特定的API,因此我建议您查看适用于安卓的ProSyst API运行时。它可以在安卓市场上免费获得:OSGi Mobile。您可以将捆绑包放在SD卡上,然后通过UI安装它们。希望这能有所帮助!
https://stackoverflow.com/questions/10726134
复制相似问题