无法加载库 'xxx.dll':在资源路径 (JNA + DLL + eclipse rcp) 中找不到本机库 (win32-x86/xxx.dll)

Unable to load library 'xxx.dll': Native library (win32-x86/xxx.dll) not found in resource path (JNA + DLL + eclipse rcp)

我在 eclipse RCP 项目中使用 JNA。

我正在关注片段样式。

fragment:`  
`Bundle-SymbolicName: a.b.c.d.win32.win32.x86`  
`Bundle-ClassPath: lib/jna-4.1.0.jar, . `  
`Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))`  
`Bundle-NativeCode: xxx.dll;processor=x86; osname=win32,*`  
`Fragment-Host: a.b.c.d

xxx.dll直接在a.b.c.d.win32.win32.x86片段项目里面。

host:
Bundle-SymbolicName: a.b.c.d

错误我得到: 线程 "main" java.lang.UnsatisfiedLinkError 中的异常:无法加载库 'xxx.dll':在资源路径

中找不到本机库 (win32-x86/xxx.dll)

需要一些帮助。

我正在使用 jna-4.2.1。
我下载了源码并调试。
我发现 JNA 引入了一个基于平台的前缀。

String libname = name.startsWith("/") ? name : NativeLibrary.mapSharedLibraryName(name); String resourcePath = name.startsWith("/") ? name : Platform.RESOURCE_PREFIX+ "/" + libname;

所以我将 xxx.dll 包含在 win32-x86 文件夹中。
但仍然 Native.loadLibrary(xxx.dll,...) 应该按其原始名称引用 dll。

感谢支持