我在一个Android应用程序中嵌入了Apache Felix 5.4.0 OSGi框架的实现,以及一些标准的Bundle(如EventAdmin,Log,SCR等)。我嵌入并配置了框架没有问题,但是当我动态安装并启动EventAdmin和SCR Bundles时,Android RunTime会向我显示以下INFO消息:
06-01 12:25:39.954 6754-7234/example.app I/art: Rejecting re-init on
previously-failed class java.lang.Class<org.apache.felix.eventadmin.impl.Configuration$2>
06-01 12:25:40.769 6754-7234/example.app I/art: Rejecting re-init on
previously-failed class java.lang.Class<org.apache.felix.scr.impl.config.ConfigurationSupport>
无论如何,如果我安装了一个Bundle托管组件,它不会向其他人提供依赖,那么SCR就可以毫无问题地激活它,所以它似乎正常工作。另一方面,如果我安装一个Bundle来托管一个组件,该组件提供对另一个组件的依赖,该组件托管在已经安装并运行的Bundle中(所有需求都已解决,我检查了它),SCR甚至不激活第一个组件如果它应该这样做,并且它是不正确的。
我试图在纯Java应用程序中嵌入框架,在这种情况下,所有工作都完美无缺。
这或许意味着Apache内部存在兼容性问题以及SCR和EventAdmin Bundles? (http://felix.apache.org/downloads.cgi)
有关可能原因的任何想法?非常感谢