解决导入so库报错小结
Posted 傻瓶子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决导入so库报错小结相关的知识,希望对你有一定的参考价值。
最近公司准备将重构后的项目上线,可是等到我接手的时候发现一个很纠结的问题:安卓5.0以上的手机(例如我现在在用的红米note3)运行重构后项目发生报错,提示缺少某so库。
而5.0以下的手机(我的小米3)能够很好的运行。为了解决这个很严重的bug(项目经理拎着耳朵说道),只好爬上google搜索解决方案。没办法,小白不懂。
刚开始因为错误代码提示搜索不到相关的so库,心里想着缺啥我补啥呗。就直接把相关的库文件直接复制到libs里面,尝试运行,发现继续提示同样的问题。想了半天,忽然想起来是不是gradle里面少写了啥?果然,gradle里面只写了这个。
因为gradle不是很熟练,在网上查询到的结果需要写成这样。
一头冷汗,按照找到的办法如上修改,继续试着运行。可是这回不仅5.0以下手机也运行不了,而且还提示缺少一个新的so库文件。看来这个办法不可以,只好一切还原,继续寻找其他办法。
在朋友的提示下,忽然发现scr下面有个\'jniLibs\'的目录,好奇会不会是因为这个里面的原因?重新在网上找资料问朋友,看看是否有相关内容。在一个\'老司机\'的讲解下才反应过来原因正是出在这里。因为我的红米note3的cpu架构是64位的,会自动加载arm-7a的so库。如果项目里面有arm64的文件夹,在打包运行时就不会自动找arm-v7了。所以,删掉就好。
以上是关于解决导入so库报错小结的主要内容,如果未能解决你的问题,请参考以下文章
jni/ndk问题 :引用so库报错: java.lang.UnsatisfiedLinkError: No implementation found for