当前位置: 首页 > 知识库问答 >
问题:

Android multidex,UnsatisfiedLinkError-找不到.so文件

梁丘兴腾
2023-03-14

我试图在android Studio中向我的multidex项目添加一些lib(.jar&.so)。

当我只添加几个JAR到项目中时,所有的工作都很好。如果我添加了越来越多的JAR(其他库),我会得到以下错误:

java.lang.UnsatisfiedLinkError:
  dalvik.system.PathClassLoader[DexPathList[[zip file
  "/data/app/com.test.digital.ocrtest-2/base.apk"],nativeLibraryDirectories=[/data/app/com.test.digital.ocrtest-2/lib/arm,
  /data/app/com.test.digital.ocrtest-2/base.apk!/lib/armeabi-v7a,
  /vendor/lib, /system/lib]]] couldn't find
  "libScanovatePassportAndIDLSDK_CPP.so"

有什么想法,我如何告诉编译器生成jar等在相同的dex?

共有1个答案

松铭
2023-03-14

如果一些额外的jar为armeabi-v7a带来了本机libries,而libscanovatepassportandidlsdk_cpp.so只是为armeabi构建的,安装程序将提取一组错误的库。修复方法不是添加更多的.so副本,而是去掉其他的abi。在gradle中,可以使用分裂。

 类似资料:
  • 问题内容: 有一块代码可以在android 4.1.2上正常工作,但在4.0.3上却不能正常工作,崩溃日志为4.0.3 我收到UnsatisfiedLinkError异常 请指导我谢谢 这是我的课 这是我从中编译并创建二进制“ libsqliteX.so”文件的源cpp文件http://www.sqlite.org/android/tree?ci=trunk&re=jni|src/org/sqli

  • 问题内容: 重新措词的问题(尽管已经解决): 我一直在使用dlopen(3)在Linux上加载共享对象库时遇到麻烦。该库是我构建的库系统的一部分,所有库在运行时都由中央可执行文件加载。所有这些都在Code :: Blocks中组织到一个工作区中,每个项目在名为Source的目录中都有自己的文件夹,该目录随程序一起提供。可执行文件的生成目录是从其自身的源代码向后的两个目录,因此exectuable和

  • 当我从gradle/code中删除TensorFlow引用时,导入的模块可以正常工作。

  • 问题内容: 我正在用C ++编写一些JNI代码,以便从Windows XP的applet中调用。我已经能够成功运行applet并加载和调用JNI库,甚至可以在其他DLL中调用它。我通过设置PATH系统环境变量来使其工作,以包括所有DLL所在的目录。 因此,问题在于,我添加了另一个使用新的外部DLL的调用,并且突然在加载库时引发UnsatisfiedLinkError。消息为:“找不到指定的过程”。

  • 我尝试了Hello world JNI,来自: http://home.pacifier.com/~mmead/jni/cs510ajp/ 我学习了Java类: 然后打电话进来: cpp文件如下所示: 我已切换到JDK x86并使用x86编译: 我使用了QT文件夹中的MINGW32的gcc(希望没问题) 注意:我必须添加共享,否则会出现错误: 请注意,我已经确保运行的是x32 jdk的java,并

  • 我试图开发一个C++DLL的JNA包装器。 在com.sun.jna.function.(function.java:252),在com.sun.jna.nativelibrary.getfunction(nativelibrary.java:600),在com.sun.jna.nativelibrary.getfunction(nativelibrary.java:576),在com.sun.j