找不到so的问题,in thread “main“ java.lang.UnsatisfiedLinkError: no xxlibrary in java.library.path

本文介绍了在Windows平台上遇到`java.lang.UnsatisfiedLinkError`找不到so库的问题,分析了错误原因并提供了解决方案,包括检查so库是否打包到apk、加载so库的配置、NDK的架构支持以及armeabi和armeabi-v7a架构的文件一致性。通过这四个步骤,可以解决大部分加载so库时遇到的问题。
摘要由CSDN通过智能技术生成

Exception in thread “main” java.lang.UnsatisfiedLinkError: no SecurityAccessRTDlibrary in java.library.path
以上的报错是因为我在windows平台,运行了基础so库
一般应该直接运行的android平台,拿个手机或者pad用的,哎呀,大意了!

知识1,
System.out.println(System.getProperty(“java.library.path”))
打印出java.library.path的路径。表示我的路径乱七八糟,遂弃。
一步步调试,到ClassLoader类里,发现寻找库的时候文件会被莫名其妙的拼上一个lib,刚开始以为是路径没有配好,后来发现是系统调用了一个方法:java.lang.System.mapLibraryName()罪魁祸首。这个方法会在咱们的给定的名字前拼接上”lib”
知识2,
错误分析
这个错误是so库加载问题,报错一般以 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader开头。一般是程序在运行过程中调用System.loadLibrary(“xxxxxxxx”);是无法找到libxxxxxx.so文件导致的报错。针对这个错误我们可以一边排查一边来解决。

问题分析和解决
1.查看so库是不是已经在编译的过程中打包到apk里。
方法:
找到项目的这个目录app\build\outputs\apk,然后用压缩软件打开app-debug.apk这个文件,去libs里找有没有报错的libxxxxxx.so文件。
解决:
如果有就下一步,没有就检查自己是不是把libxxxxxx.so文件没有放在正确的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼾声鼾语

感谢您的支持鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值