Android 如何實現(xiàn)exclude aar包中的某個jar包
場景一
要移除的jar包不在aar包中的classes.jar中
直接把aar包里的Jar打包的時候給去掉,就像下面這這樣。注意,要使用exclude module這種方式,直接使用exclude group方式?jīng)]有效果。exclude group的方法適用于exclude JAR包中的文件。
implementation(name: ’×××××××aar包’, ext: ’aar’) { exclude module: ’gson’ }
場景二
要移除的jar包在aar包中的classes.jar中
這個時候,使用exclude方法已經(jīng)不能生效了。你可以使用下面的通用方法
解壓aar文件到tmpDir目錄下
unzip ×××.aar -d tmpDir
找到classes.jar包,用壓縮工具打開,刪除目標(biāo)文件
將tmpDir重新打包成一個新的aar
jar cvf ×××NewLib.aar -C tmpDir/ .
**補充:**我在Ubuntu下直接使用壓縮工具打開aar包,然后刪除其中的重復(fù)的文件,這個方法也是可行的。
補充知識:Android導(dǎo)入多個Module時包沖突解決辦法
本文章是基于AndroidStudio的經(jīng)驗總結(jié) 希望可以幫到您
1.如果某項目中導(dǎo)入了v4包(環(huán)信集成)
自己的項目AS中會自動導(dǎo)入V7包,V7包中就包含V4從而會導(dǎo)致V4jar包沖突
錯誤提示:
Error:Execution failed for task ’:transformClassesWithJarMergingForDebug’.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class
解決辦法:
compile (’com.android.support:appcompat-v7:23.3.0’){ exclude module: ’support-v4’}
compile fileTree(include: [’*.jar’], dir: ’libs’)
這句話會導(dǎo)入lib文件夾中所有jar包
如果通過上面方法還沒有解決問題說明lib中還是有V4包引用沖突 最好的辦法就是注釋掉 然后需要用到哪個jar 再導(dǎo)入哪個
以上這篇Android 如何實現(xiàn)exclude aar包中的某個jar包就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. vue實現(xiàn)web在線聊天功能2. IntelliJ IDEA設(shè)置自動提示功能快捷鍵的方法3. Java Bean與Map之間相互轉(zhuǎn)化的實現(xiàn)方法4. SpringBoot+TestNG單元測試的實現(xiàn)5. Springboot 全局日期格式化處理的實現(xiàn)6. Java使用Tesseract-Ocr識別數(shù)字7. Python使用urlretrieve實現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼8. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)9. JAMon(Java Application Monitor)備忘記10. 完美解決vue 中多個echarts圖表自適應(yīng)的問題
