使用mpaas inside 找不到原来的.so文件

 一句总结   mpass 本地只支持armeabi。

继上次评价mpaas 的热更新为2019年最坑的时候,2020年的首坑,又来自mpaas。
因为上次是单独依赖热更新模块,后来,领导觉得要整体迁移到mpaas框架。
然后就跟我说用mpaas portal/bundle,结果我转的时候各种报错,然后领导说做个壳子,直接导过来就行,也没听懂。
问一个做过的同事,他坚持使用mpaas inside,说是官方更加支持的形式,我看了文档感觉也就那回事。
之所以用,是因为portal/bundle 出错没人问,然后inside 的话,应该是所有方式中最简单的。
然后就新建了inside工程,把原项目的module 都一个一个导了过来,把原项目主module跟新的主module 也对应内容移过来,需要修改的处理一下。
开始run。
然后,新年首坑就来了。

采坑时间10hour+
尝试方案10+
解决方案  官方求助
坑名:so文件找不到。
分析:做过Android开发的都会遇到这个问题,普遍的原因就是没有做兼容,defaultConfig里面设置ndk的abi过滤就行,基本都是选一个比如v7a,然后把app需要的所有so文件,都要在v7a里面有就行。
gradle.properties  里面 设置 

android.useDeprecatedNdk=true

1 然后我就一直围绕这个去找,百度出来的基本都是这个思路,但是我项目里面都已经配置过了,你想,如果之前没有配置好,那原项目怎么会正常使用。
尝试了围绕它的所有思路去想也没有想到答案。
2 求助朋友,同事,问了一个做过mpaas项目的同事,结果他也没有给出答案。
3 反复思考,想一下不管怎么样,so文件找不到肯定是一个filenotfound 类似的问题,然后看到网上一个文档说,解压app看看v7a里面有没有这个so文件。因为我们app设置的就是使用v7a。
然后,打了一个Apk,解压,发现妈的,别说v7a,连lib目录都没有,解压过apk应该知道里面的大概文件模块。
4 然后问题就比较明确了,就是使用inside框架,打包的话,所有的so文件都不会被打包进去,这样的话,肯定是打包设置的事情。
5 向mpass官方人员咨询,发了一个工单,回复的还挺快,我把工单截图一下就行。


屏幕快照 2020-01-19 下午5.33.23.png

原因就是mpass 只能使用armeabi ,如果你使用他们的框架,就必须按照他们的来,所以最简单的方案,就是做一套完整的armeabi 库,并且ndk abifilter 设置成armeabi。 如果没有的,直接把之前完整的库,arm64或者arm v7 的copy到armeabi即可。
就这样,出坑,好操蛋。

你可能感兴趣的:(使用mpaas inside 找不到原来的.so文件)