OSGI Bundle-NativeCode 给出错误 "No match found for native code"

OSGI Bundle-NativeCode give error "No match found for native code"

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

我将本机库放在:lib/librxtxSerial.so 下(注意:在 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

我该如何解决这个问题?

好的,我已经解决了。不知道为什么,但为了解决这个问题,在 header 末尾添加 '*' 就足够了,所以:

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

现在可以使用了。