我正在尝试将一些库(.jar 和 .so)添加到我在 android studio 中的 multidex 项目。
当我只向项目添加几个 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"
知道如何告诉编译器在同一个 dex 中生成 jar 等吗?
最佳答案
如果一些额外的 JAR 为 armeabi-v7a 带来原生库,而您的 libScanovatePassportAndIDLSDK_CPP.so 仅为 armeabi 构建,则安装程序将提取一组错误的库。解决方法不是添加更多的 .so 副本,而是去除其他 ABI。在 gradle 中,你可以使用 splits .
关于Android multidex,UnsatisfiedLinkError - 找不到 .so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003040/