您的位置:首頁技術文章
文章詳情頁

Android 如何實現exclude aar包中的某個jar包

瀏覽:76日期:2022-09-25 17:08:44

場景一

要移除的jar包不在aar包中的classes.jar中

直接把aar包里的Jar打包的時候給去掉,就像下面這這樣。注意,要使用exclude module這種方式,直接使用exclude group方式沒有效果。exclude group的方法適用于exclude JAR包中的文件。

implementation(name: ’×××××××aar包’, ext: ’aar’) { exclude module: ’gson’ }

場景二

要移除的jar包在aar包中的classes.jar中

這個時候,使用exclude方法已經不能生效了。你可以使用下面的通用方法

解壓aar文件到tmpDir目錄下

unzip ×××.aar -d tmpDir

找到classes.jar包,用壓縮工具打開,刪除目標文件

將tmpDir重新打包成一個新的aar

jar cvf ×××NewLib.aar -C tmpDir/ .

**補充:**我在Ubuntu下直接使用壓縮工具打開aar包,然后刪除其中的重復的文件,這個方法也是可行的。

補充知識:Android導入多個Module時包沖突解決辦法

本文章是基于AndroidStudio的經驗總結 希望可以幫到您

1.如果某項目中導入了v4包(環信集成)

自己的項目AS中會自動導入V7包,V7包中就包含V4從而會導致V4jar包沖突

錯誤提示:

Android 如何實現exclude aar包中的某個jar包

Error:Execution failed for task ’:transformClassesWithJarMergingForDebug’.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

解決辦法:

Android 如何實現exclude aar包中的某個jar包

compile (’com.android.support:appcompat-v7:23.3.0’){ exclude module: ’support-v4’}

compile fileTree(include: [’*.jar’], dir: ’libs’)

這句話會導入lib文件夾中所有jar包

如果通過上面方法還沒有解決問題說明lib中還是有V4包引用沖突 最好的辦法就是注釋掉 然后需要用到哪個jar 再導入哪個

以上這篇Android 如何實現exclude aar包中的某個jar包就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
国产综合久久一区二区三区