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

has*_*ver 5 java java-native-interface android jna android-ndk

在我的应用程序中,我添加了第三方硬件连接并使用他们提供的 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.`
Run Code Online (Sandbox Code Playgroud)

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

Lon*_*zak 5

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

还请注意 linux 架构 != android 架构(谷歌使用不同的 c 库(仿生),这与普通的 linux 发行版不同)对于所有架构,请参见:

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

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