2023-01-19 342
我正在尝试将一些lib(.jar&.so)添加到我在Android Studio的Multidex项目中.
当我在项目中仅添加几罐罐子时,一切正常.
如果我添加越来越多的罐子(其他Libs)
我遇到了这个错误:
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中?
如果某些额外的罐子为 armeabi-v7a 带来本地库,而您的 libscanovatepasspassportandidlsdk_cpp.so 仅用于 armeabi >,安装程序将提取错误的库集.修复程序不是要添加更多 .so 的副本,而是剥离其他ABI.在Gradle中,您可以使用 splits .
有一个优雅的解决方案.当您的APK文件不包含64位版本中的所有本机LIB时,您只需要确保您的APK文件不包含任何64位LIB即可.这是有关如何配置项目来解决此问题的教程: https://corbt.com/posts/2015/09/18/mixing-32-and-64bit-deperioncies-in-android.htroid.html
背景
当您的应用程序安装在64位ABI设备上时,包装管理器会在安装上扫描APK文件,并寻找64位本机库.如果它找到合适的64位本地库文件夹(如果使用任何ZIP客户端打开,则可以在APK文件中检查/LIBS文件夹),假设所有本机库都有64位版本.如果64位版本中没有一个或多个本地库,则软件包管理器将无法加载其32位版本.因此,当应用程序试图运行依赖这些本机库的代码时,您将收到此不满意的LinkError消息.这意味着您的库的32位版本
以上所述是小编给大家介绍的Android multidex, UnsatisfiedLinkError-couldn't find .so file,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25881.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态