在 Android Studio 上使用 JNA 加载 *.so

Load *.so with JNA on Android Studio

我正在研究 Android Service,它与硬件和应用程序进行通信。我正在使用本机库访问硬件 (libTemp.so)。我使用 JNA 在 windows & ubuntu 上使用 java 程序测试了这个库。

temperatureHardware = (TempNative) Native.loadLibrary("libTemp.so", TempNative.class);

这就是我将 *.so 库与 TempNative object 连接的方式。当我在 Android 上尝试这个时,我得到如下结果。

W/linker: /data/app/com.example.kube.tempsystemservice-YUkS9udICA7GsJhTA8fG4A==/lib/arm/libjnidispatch.so: is missing DT_SONAME will use basename as a replacement: "libjnidispatch.so"

Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'libTemp.so': Native library (android-arm/liblibTemp.so.so) not found in resource path (.)

这是因为服务找不到 lib 文件吗?

我添加的lib文件如下...

尝试使用不带扩展名的库名称。

temperatureHardware = (TempNative) Native.loadLibrary("libTemp", TempNative.class);