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

时间:2017-12-13 18:41:33

标签: java android android-ndk java-native-interface jna

在我的应用中,我正在添加第三方硬件连接并使用他们提供的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.`

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

1 个答案:

答案 0 :(得分:4)

  1. 从jar文件中提取com / sun / jna / linux-arm / libjnidispatch.so
  2. 将.so文件放在以下目录中(使用android studio时):yourproject \ app \ src \ main \ jniLibs \ armeabi-v7a \ libjnidispatch.so
  3. 还请注意linux架构!= android架构(谷歌使用不同的c库(仿生),这是一个不同于正常的Linux发行版) 对于所有架构,请参阅:

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

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