Android Studio 重複jar包衝突問題

2021-07-11 11:59:16 字數 1385 閱讀 2077

android studio:multiple dex files define landroid/support/annotation/animres

匯入乙個新專案,同時用到了v4,v7都是22.1.1包,

compile ('com.android.support:support-v4:22.1.0')

然後就報了如下錯誤

com.android.dex.dexexception: multiple dex files define landroid/support/annotation/animres;

出現這個問題是因為最新的v4包(compile 『com.android.support:support-v4:22.1.0』)已經包含了annotation.jar這個包,但其他jar包裡也包含這個包造成的。在晚上找到了幾個正確的解決方法有如下幾種: 

1,找到專案其他的依賴包,一定在libs裡的某個jar包裡,隱藏著annotation.jar包,將其刪掉就ok了,此為最正統的解決方法; 

2,降級v4包,因為高版本的v4才包含annotation.jar,可以在最外面的build.grable裡強制設定:

allprojects 

configurations

.all

}

這個方法我試過了,對我這個程式並沒有什麼用

3,在需要v4包的地方exclude掉annotation包,注意compile要多加個括號:

compile (『

com.

android

.support

:support-v4

:22.1.0

『)

缺點是每個用v4包的地方都要這麼設定下。 我設定了也還是一樣的問題,後來發現應該是v7內容部也包含了v4,但是和我依賴的v4包不同版本,但是不知道如何查詢v7包內容的v4包版本,所以直接不依賴v4包,又出現如下問題

com.android.dex.dexexception: multiple dex files define landroid/support/v4/accessibilityservice/accessibilityserviceinfocompat$accessibilityserviceinfoversionimpl;

好像是依賴的其他專案中包含了v4包,所以再排除v7包中的v4包

這樣就大功告成了,這個是我一直吐槽的地方,android studio 還不能做到直接提示哪個包得哪個檔案重複了,需要自己去尋找,也不能自動選取其中的乙個版本,希望在後面的版本中可以改進吧

其他可能忽略的說明:

dependencies
這邊會預設編譯libs下的jar,需要注意

Android Studio主題設定

android studio發布也好多天了。剛好本人目前的專案需要android平板和pc區域網連線操作。就開始使用android studio了。不過預設的介面實在看不過眼,下面我們來看看android studio的主題吧。我們先選擇nimbus試試,這個名字很熟悉吧!整個介面煥然一新了吧。當然...

Android Studio編碼問題

不同於eclipse,選中專案右擊即會出現 properties 選項,可以設定專案檔案的預設編碼,可以根據自己的需要設定為utf 8 gb2312等編碼。但android studio的專案設定邏輯與eclipse有很大的區別,執行的操作為file setting file encodings然後...

Android Studio 入門指南

作為乙個android 開發者,你應該很了解android studio,如果你現在還不了解,沒關係,那麼從現在開始,我們一起來了解了解andoid studio。android studio 是google 官方在2013 google i o 大會 2013 年5月 上發布的全新andrid 開...