最近公司准备将重构后的项目上线,可是等到我接手的时候发现一个很纠结的问题:安卓5.0以上的手机(例如我现在在用的红米note3)运行重构后项目发生报错,提示缺少某so库。

而5.0以下的手机(我的小米3)能够很好的运行。为了解决这个很严重的bug(项目经理拎着耳朵说道),只好爬上google搜索解决方案。没办法,小白不懂。

刚开始因为错误代码提示搜索不到相关的so库,心里想着缺啥我补啥呗。就直接把相关的库文件直接复制到libs里面,尝试运行,发现继续提示同样的问题。想了半天,忽然想起来是不是gradle里面少写了啥?果然,gradle里面只写了解决导入so库报错小结-LMLPHP这个。

因为gradle不是很熟练,在网上查询到的结果需要写成这样解决导入so库报错小结-LMLPHP

一头冷汗,按照找到的办法如上修改,继续试着运行。可是这回不仅5.0以下手机也运行不了,而且还提示缺少一个新的so库文件。看来这个办法不可以,只好一切还原,继续寻找其他办法。

在朋友的提示下,忽然发现scr下面有个'jniLibs'的目录,解决导入so库报错小结-LMLPHP好奇会不会是因为这个里面的原因?重新在网上找资料问朋友,看看是否有相关内容。在一个'老司机'的讲解下才反应过来原因正是出在这里。因为我的红米note3的cpu架构是64位的,会自动加载arm-7a的so库。如果项目里面有arm64的文件夹,在打包运行时就不会自动找arm-v7了。所以,删掉就好。

04-15 11:27