Java Android上Felix中的SCR包

Java Android上Felix中的SCR包,java,android,osgi,apache-felix,declarative-services,Java,Android,Osgi,Apache Felix,Declarative Services,我正在将ApacheFelix5.4.0实现的OSGi框架嵌入到Android应用程序中,并附带两个标准包(如EventAdmin、Log、SCR等)。我嵌入并配置了框架,没有问题,但当我动态安装并启动EventAdmin和SCR捆绑包时,Android RunTime会向我显示以下信息消息: 06-01 12:25:39.954 6754-7234/example.app I/art: Rejecting re-init on previously-failed class java.lan

我正在将ApacheFelix5.4.0实现的OSGi框架嵌入到Android应用程序中,并附带两个标准包(如EventAdmin、Log、SCR等)。我嵌入并配置了框架,没有问题,但当我动态安装并启动EventAdmin和SCR捆绑包时,Android RunTime会向我显示以下信息消息:

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>
06-01 12:25:39.954 6754-7234/example.app I/art:拒绝重新初始化
以前失败的类java.lang.class
06-01 12:25:40.769 6754-7234/example.app I/art:拒绝重新初始化
以前失败的类java.lang.class
无论如何,如果我安装了一个对其他组件没有依赖性的包托管组件,那么可以毫无问题地激活它,这样它看起来就可以正常工作了。另一方面,如果我安装了一个包,该包承载一个组件,提供对另一个组件的依赖性,该组件托管在一个已经安装并运行的包中(所有需求都已解决,我检查了它),则SCR不会激活第一个组件,即使它应该这样做,这是不正确的

我还尝试将该框架嵌入到纯Java应用程序中,在这种情况下,所有这些都可以完美地工作

这可能意味着Apache实现的SCR和EventAdmin捆绑包中存在兼容性问题?()


你知道可能的原因吗?非常感谢

无法解析第二段。SCR从不启动捆绑包。。。实际的错误是什么?是的,当然,我的意思是,如果我安装了一个托管组件的捆绑包,该组件依赖于一个已经安装并运行的捆绑包托管的组件,那么SCR永远不会启动第一个描述的组件。无论如何,我会用这个解释来编辑这个问题,谢谢你的澄清。我认为这个错误与Android和标准Java上的类加载不同有关。正如您所说,它在Java中运行良好。我甚至不确定Felix是否支持在Android上运行。@NeilBartlett是的,Apache说它是受支持的。看这个。无论如何,我认为这也是一个类加载器问题。谢谢你的帮助。无法分析第二段。SCR从不启动捆绑包。。。实际的错误是什么?是的,当然,我的意思是,如果我安装了一个托管组件的捆绑包,该组件依赖于一个已经安装并运行的捆绑包托管的组件,那么SCR永远不会启动第一个描述的组件。无论如何,我会用这个解释来编辑这个问题,谢谢你的澄清。我认为这个错误与Android和标准Java上的类加载不同有关。正如您所说,它在Java中运行良好。我甚至不确定Felix是否支持在Android上运行。@NeilBartlett是的,Apache说它是受支持的。看这个。无论如何,我认为这也是一个类加载器问题。谢谢你的帮助。