一句總結(jié) mpass 本地只支持armeabi椭懊。
繼上次評(píng)價(jià)mpaas 的熱更新為2019年最坑的時(shí)候旱爆,2020年的首坑,又來(lái)自mpaas冲泥。
因?yàn)樯洗问菃为?dú)依賴熱更新模塊驹碍,后來(lái),領(lǐng)導(dǎo)覺(jué)得要整體遷移到mpaas框架凡恍。
然后就跟我說(shuō)用mpaas portal/bundle,結(jié)果我轉(zhuǎn)的時(shí)候各種報(bào)錯(cuò)志秃,然后領(lǐng)導(dǎo)說(shuō)做個(gè)殼子,直接導(dǎo)過(guò)來(lái)就行嚼酝,也沒(méi)聽(tīng)懂浮还。
問(wèn)一個(gè)做過(guò)的同事,他堅(jiān)持使用mpaas inside闽巩,說(shuō)是官方更加支持的形式钧舌,我看了文檔感覺(jué)也就那回事担汤。
之所以用,是因?yàn)閜ortal/bundle 出錯(cuò)沒(méi)人問(wèn)洼冻,然后inside 的話崭歧,應(yīng)該是所有方式中最簡(jiǎn)單的。
然后就新建了inside工程碘赖,把原項(xiàng)目的module 都一個(gè)一個(gè)導(dǎo)了過(guò)來(lái)驾荣,把原項(xiàng)目主module跟新的主module 也對(duì)應(yīng)內(nèi)容移過(guò)來(lái),需要修改的處理一下普泡。
開(kāi)始run播掷。
然后,新年首坑就來(lái)了撼班。
采坑時(shí)間10hour+
嘗試方案10+
解決方案 官方求助
坑名:so文件找不到歧匈。
分析:做過(guò)Android開(kāi)發(fā)的都會(huì)遇到這個(gè)問(wèn)題,普遍的原因就是沒(méi)有做兼容砰嘁,defaultConfig里面設(shè)置ndk的abi過(guò)濾就行件炉,基本都是選一個(gè)比如v7a,然后把a(bǔ)pp需要的所有so文件,都要在v7a里面有就行矮湘。
gradle.properties 里面 設(shè)置
android.useDeprecatedNdk=true
1 然后我就一直圍繞這個(gè)去找斟冕,百度出來(lái)的基本都是這個(gè)思路,但是我項(xiàng)目里面都已經(jīng)配置過(guò)了缅阳,你想磕蛇,如果之前沒(méi)有配置好,那原項(xiàng)目怎么會(huì)正常使用十办。
嘗試了圍繞它的所有思路去想也沒(méi)有想到答案秀撇。
2 求助朋友,同事向族,問(wèn)了一個(gè)做過(guò)mpaas項(xiàng)目的同事呵燕,結(jié)果他也沒(méi)有給出答案。
3 反復(fù)思考件相,想一下不管怎么樣再扭,so文件找不到肯定是一個(gè)filenotfound 類似的問(wèn)題,然后看到網(wǎng)上一個(gè)文檔說(shuō)夜矗,解壓app看看v7a里面有沒(méi)有這個(gè)so文件霍衫。因?yàn)槲覀僡pp設(shè)置的就是使用v7a。
然后侯养,打了一個(gè)Apk,解壓,發(fā)現(xiàn)媽的澄干,別說(shuō)v7a,連lib目錄都沒(méi)有逛揩,解壓過(guò)apk應(yīng)該知道里面的大概文件模塊柠傍。
4 然后問(wèn)題就比較明確了,就是使用inside框架辩稽,打包的話惧笛,所有的so文件都不會(huì)被打包進(jìn)去,這樣的話逞泄,肯定是打包設(shè)置的事情患整。
5 向mpass官方人員咨詢,發(fā)了一個(gè)工單喷众,回復(fù)的還挺快各谚,我把工單截圖一下就行。
原因就是mpass 只能使用armeabi 到千,如果你使用他們的框架昌渤,就必須按照他們的來(lái),所以最簡(jiǎn)單的方案憔四,就是做一套完整的armeabi 庫(kù)膀息,并且ndk abifilter 設(shè)置成armeabi。 如果沒(méi)有的了赵,直接把之前完整的庫(kù)潜支,arm64或者arm v7 的copy到armeabi即可。
就這樣柿汛,出坑冗酿,好操蛋。