Android Studio gradle配置packagingOptions打包so庫重復(fù)
正文
在安卓開發(fā)中,通常會使用到gradle來編譯,在安卓項目的app目錄下的build.gradle中是用來對編譯進行配置的,packagingOptions 是其中的一個打包配置,常見的設(shè)置項有exclude、pickFirst、doNotStrip、merge。
在日常代碼開發(fā)中,我們需要知其然,而知其所以然,本文章知識也是Android日常瘦身的的必備知識。
pickFirst 匹配
pickFirst,匹配到多個相同文件,只提取第一個,不能過濾aar和jar中的文件。
packagingOptions { pickFirst 'lib/arm64-v8a/libmsoptimize.so' }
比如下面的打包日志出錯,就是說有重復(fù)相同的so庫,那么通過 pickFirst 來配置使用第一個就可以解決。 2 files found with path ‘lib/arm64-v8a/libmsoptimize.so’ from inputs:
doNotStrip 設(shè)置
doNotStrip 可以設(shè)置某些動態(tài)庫不被優(yōu)化壓縮。
比如在使用華為HMS的相關(guān)服務(wù)時,他會讓你注意不要壓縮一些so庫。
packagingOptions { pickFirst 'lib/libc++_shared.so' doNotStrip "lib/armeabi/libYTCommon.so" doNotStrip "lib/armeabi-v7a/libYTCommon.so" }
merge 將匹配的文件都添加到APK中
merge 和pickFirst有些相反,會合并所有文件
packagingOptions { merge '**/LICENSE.txt' merge '**/NOTICE.txt' }
exclude 過濾
exclude 過濾掉某些文件或者目錄不添加到APK中
不能過濾aar和jar中的內(nèi)容,比如項目中有些依賴庫中有多余的so庫,在App中并不是必需的,所以在打包的時候就可以將其過濾了
packagingOptions { exclude 'META-INF/**' exclude 'lib/arm64-v8a/libmediaplayer.so' }
以上就是Android Studio gradle配置packagingOptions打包so庫重復(fù)的詳細內(nèi)容,更多關(guān)于Android Studio gradle配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android編程開發(fā)之EditText中inputType屬性小結(jié)
這篇文章主要介紹了Android編程開發(fā)之EditText中inputType屬性用法,分析說明了Android中EditText的inputType屬性具體含義與使用技巧,需要的朋友可以參考下2016-01-01Android?Hilt?Retrofit?Paging3使用實例
這篇文章主要介紹了Android?Hilt依賴注入的使用,首先,某個類的成員變量稱為依賴,如若此變量想要實例化引用其類的方法,可以通過構(gòu)造函數(shù)傳參或者通過某個方法獲取對象,此等通過外部方法獲取對象實例的稱為依賴注入2023-01-01PullToRefreshListView實現(xiàn)多條目加載上拉刷新和下拉加載
這篇文章主要為大家詳細介紹了PullToRefreshListView實現(xiàn)多條目加載上拉刷新和下拉加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01Android實現(xiàn)計步進度的環(huán)形Progress
這篇文章主要為大家詳細介紹了Android實現(xiàn)計步進度的環(huán)形Progress,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02