【问题标题】:android-arm/libjnidispatch.so not found errorandroid-arm/libjnidispatch.so 未找到错误
【发布时间】:2017-12-13 18:41:33
【问题描述】:

在我的应用程序中,我正在添加第三方硬件连接并使用他们提供的 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 的路径。谢谢!

【问题讨论】:

  • 在我的项目中,我有 .aar 文件,它对 .so 文件具有内部依赖关系,但对我来说,我只是在我的项目中添加了 .aar 依赖关系。
  • 检查 stackoverflow.com/a/54663679/8034839 了解如何正确添加 libjnidispatch.so

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


【解决方案1】:
  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 中存在一个错误,这也可能是一个原因)

【讨论】:

  • 我试过了,但仍然给出与搜索相同路径相同的错误。
  • 感谢@Lozank,我使用的是 jna4.2.3,现在使用 4.5.0 后问题解决了。我正在使用我保留在此路径 yourproject\app\src\main\jniLibs\armeabi-v7a\ 上的其他一些 .so 文件,但它显示相同的错误。如果我错了,你能建议我吗!
猜你喜欢
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多