【问题标题】:Load *.so with JNA on Android Studio在 Android Studio 上使用 JNA 加载 *.so
【发布时间】:2018-08-21 10:36:26
【问题描述】:

我正在开发一个Android Service,它与硬件和应用程序通信。我正在使用本机库来访问硬件 (libTemp.so)。我在 windowsubuntu 上使用 JNA 的 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 (.)

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

我添加lib文件如下...

【问题讨论】:

标签: java android android-studio jna .so


【解决方案1】:

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

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

【讨论】:

  • 它给出了这样的问题:Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'Temp': Native library (android-arm/libTemp.so) not found in resource path (.)
  • 您可以尝试将绝对路径传递给库,包括文件名。
猜你喜欢
  • 1970-01-01
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多