我的 Linux Java 应用程序使用蓝牙设备。我使用这个库来与 bluez stack 通信:https ://github.com/hypfvieh/bluez-dbus 。
在我添加module-info.java
到我的客户端代码之前,它运行良好。突然我得到这个错误:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法在 jnr.ffi@2.1.15/jnr.ffi.provider.InvalidRuntime.newLoadError 加载 FFI 提供程序 jnr.ffi.provider.jffi.Provider(InvalidRuntime.java:101 ) 在 jnr.ffi@2.1.15/jnr.ffi.Struct$NumberField.(Struct.java:872) 在 jnr.ffi@2.1.15/jnr.ffi.provider.InvalidRuntime.findType(InvalidRuntime.java:42)在 jnr.ffi@2.1.15/jnr.ffi.Struct$Unsigned16.(Struct.java:1240) 在 jnr.unixsocket@0.33/jnr.unixsocket.SockAddrUnix$DefaultSockAddrUnix.(SockAddrUnix.java:209) 在 jnr.unixsocket @0.33/jnr.unixsocket.SockAddrUnix.create(SockAddrUnix.java:174) 在 jnr.unixsocket@0.33/jnr.unixsocket.UnixSocketAddress.(UnixSocketAddress.java:53) 在 dbus.java@3.2.3/org.freedesktop。 dbus.connections.transports.UnixSocketTransport.(UnixSocketTransport.java:32) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections。transports.TransportFactory.createTransport(TransportFactory.java:37) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.AbstractConnection.(AbstractConnection.java:161) 在 dbus.java@3.2.3/org.freedesktop .dbus.connections.impl.DBusConnection.(DBusConnection.java:334) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@ 3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:169) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java :219) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager .createInstance(DeviceManager.java:74) 在...createTransport(TransportFactory.java:37) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.AbstractConnection.(AbstractConnection.java:161) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections .impl.DBusConnection.(DBusConnection.java:334) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/ org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:169) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager .java:74) 在...createTransport(TransportFactory.java:37) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.AbstractConnection.(AbstractConnection.java:161) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections .impl.DBusConnection.(DBusConnection.java:334) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/ org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:169) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager .java:74) 在...dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.(DBusConnection.java:334) 上的connections.AbstractConnection.(AbstractConnection.java:161) dbus.java@3.2.3/org。 freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:169) 在 dbus。 java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection .java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.(DBusConnection.java:334) 上的connections.AbstractConnection.(AbstractConnection.java:161) dbus.java@3.2.3/org。 freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:169) 在 dbus。 java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection .java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...334) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl。 DBusConnection.getConnection(DBusConnection.java:169) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org。 freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...334) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:149) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl。 DBusConnection.getConnection(DBusConnection.java:169) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org。 freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github.hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github。 hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...getConnection(DBusConnection.java:219) 在 dbus.java@3.2.3/org.freedesktop.dbus.connections.impl.DBusConnection.getConnection(DBusConnection.java:184) 在 bluez.dbus@0.1.3/com.github。 hypfvieh.bluetooth.DeviceManager.createInstance(DeviceManager.java:74) 在 ...
原因:java.lang.UnsatisfiedLinkError: could not get native definition for type
POINTER
,原始错误消息如下:java.lang.UnsatisfiedLinkError: could not locate stub library in jar file。在 jffi@1.2.23/com.kenai.jffi.internal.StubLoader.getStubLibraryStream(StubLoader.java: 450) 在 jffi@1.2.23/com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:375) 在 jffi@1.2.23/com.kenai.jffi.internal.StubLoader.load(StubLoader.java: 278) 在 jffi@1.2.23/com.kenai.jffi.internal.StubLoader.(StubLoader.java:487) 在 java.base/java.lang.Class.forName0(Native Method) 在 java.base/java.lang .Class.forName(Class.java:427) at jffi@1.2.23/com.kenai.jffi.Init.load(Init.java:68) at jffi@1.2.23/com.kenai.jffi.Foreign$InstanceHolder .getInstanceHolder(Foreign.java:49) 在 jffi@1.2.23/com.kenai.jffi.Foreign$InstanceHolder.(Foreign.java:45) 在 jffi@1.2.23/com.kenai.jffi。
我试图在 module-info.java 中要求与此错误相关的所有内容,但没有成功:
module org.example {
requires dbus.java;
requires dbus.java.nativefd;
requires bluecove.linux.custom;
requires bluez.dbus;
requires jnr.ffi;
requires jnr.x86asm;
requires jnr.posix;
requires jnr.enxio;
requires jnr.unixsocket;
requires jnr.constants;
requires jnr.a64asm;
}
先感谢您。