OSGI Bundle-NativeCode给出错误"找不到本机代码"

时间:2015-09-17 08:38:13

标签: java maven osgi bundle manifest

我正在开发一个使用本机库 librxtxSerial 的OSGI包。 第一次,我不得不在树莓上部署这个包,所以我做了类似的事情:

我将本机库放在:lib / librxtxSerial.so(NB:INSIDE java项目)。

然后,在MANIFEST中,我写道:

Bundle-NativeCode: lib/librxtxSerial.so

一切正常!!!

现在,问题是我要在使用不同处理器架构的其他嵌入式设备上部署相同的捆绑包(x86而不是ARM)。

所以,我已经下载了librxtxSerial库的x86版本,并修改了我的文件夹结构:

 - lib
   - x86
     - librxtxSerial.so
   - arm
     - librxtxSerial.so

我已经用这种方式修改了我的MANIFEST:

Bundle-NativeCode: lib/x86/librxtxSerial;processor=x86, lib/arm/librxtxSerial;processor=ARM_le

尝试编译(通过maven tycho插件)我总是得到同样的错误:

No match found for native code: lib/x86/librxtxSerial; processor=x86, lib/arm/librxtxSerial; processor=ARM_le

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了。不确定为什么但是为了解决这个问题就足以添加' *'在标题的末尾,所以:

Bundle-NativeCode: lib/x86/librxtxSerial;processor=x86, lib/arm/librxtxSerial;processor=ARM_le, *

它现在有效。