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文件没有放在正确的