Android Studio gradle配置項(xiàng) packagingOptions說明 Android打包so庫重復(fù)問題
在安卓開發(fā)中,通常會(huì)使用到gradle來編譯,在安卓項(xiàng)目的app目錄下的build.gradle中是用來對(duì)編譯進(jìn)行配置的,packagingOptions 是其中的一個(gè)打包配置,常見的設(shè)置項(xiàng)有exclude、pickFirst、doNotStrip、merge。
在日常代碼開發(fā)中,我們需要知其然,而知其所以然,本文章知識(shí)也是Android日常瘦身的的必備知識(shí)。
pickFirst,匹配到多個(gè)相同文件,只提取第一個(gè),不能過濾aar和jar中的文件。
比如下面的打包日志出錯(cuò),就是說有重復(fù)相同的so庫,那么通過 pickFirst 來配置使用第一個(gè)就可以解決。2 files found with path ‘lib/arm64-v8a/libmsoptimize.so’ from inputs:

doNotStrip 可以設(shè)置某些動(dòng)態(tài)庫不被優(yōu)化壓縮。
比如在使用華為HMS的相關(guān)服務(wù)時(shí),他會(huì)讓你注意不要壓縮一些so庫。
merge 將匹配的文件都添加到APK中
merge 和pickFirst有些相反,會(huì)合并所有文件
exclude 過濾掉某些文件或者目錄不添加到APK中
不能過濾aar和jar中的內(nèi)容,比如項(xiàng)目中有些依賴庫中有多余的so庫,在App中并不是必需的,所以在打包的時(shí)候就可以將其過濾了
標(biāo)簽: