android-arm/libjnidispatch.so 找不到错误

android-arm/libjnidispatch.so not found error

在我的应用程序中,我正在添加第三方硬件连接并使用他们为 java 提供的代码。还使用 jna.jar 与该代码交互,因为它使用本机库加载一些 .so 文件。它抛出错误:

 java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/android-arm/libjnidispatch.so) not found in resource path (.) Please help where can I get the jar with android-arm/libjnidispatch.so in it.`

我尝试添加 android-arm.jar,它分别具有 libjnidispatch.so,但编译器正在寻找 jna.jar 的路径。谢谢!

  1. 从 jar 文件中提取 com/sun/jna/linux-arm/libjnidispatch.so
  2. 将 .so 文件放在以下目录中(使用 android studio 时):yourproject\app\src\main\jniLibs\armeabi-v7a\libjnidispatch.so

另外请注意 linux 体系结构 != android 体系结构(google 使用不同的 c 库(仿生),这与正常的 linux 分布) 对于所有架构,请参阅:

https://github.com/java-native-access/jna/tree/master/lib/native

您使用哪个版本的 JNA? (JNA 4.2.2/4.3.0 中存在错误,这也可能是一个原因)