Android Studio com.android.dex.DexException: Multiple dex files define(重複引用包)

如果你用Android Studio開發,並且要用其他項目作爲library,這個問題是很容易出現的。出現這個問題的原因是包的重複引用,意思就是在你自己的項目中引用了某個包,而被你作爲library的項目也引用了同一個包,就會有這個問題。

那如何解決呢,我所知道的是有兩種方法:

方法1:按照慣例,直接上圖吧,從下圖可以看到我在library中有加了一個v4的包,同時我將它作爲dependencies,而在samples中也是一樣有一個v4的包,同樣的也需要將它作爲dependencies,這個時候你去編譯就會出現重複引用的問題:

那如何解決呢?

你可以直接修改gradle文件,也可以在上圖中改,如下圖所示:

在gradle文件中改,只需要將compile改成provided就行。

如果直接配置的話,也是一樣的,在下拉框中選擇provided。這裏說明下,你只要改其中一個項目就可以了。


方法2:

使用這個方法有一個前提,就是你所引用的包在Library dependency中有,還是拿v4的包舉例。

首先將v4的包從你的libs文件中刪除,兩個項目中都刪除,然後再重新添加引用,這個添加方式如下,直接上圖吧,按圈起來的紅色框操作:


在彈出的對話框中選擇v4包:


點擊OK即可。注意這邊兩個項目都需要改成這種方式來引入v4包。

這個時候你兩個引入的v4包的Scope就都可以使用compile了。而不需要將其中一個改成provided纔可以編譯過。當然你也可以不用上面的圖形化操作方式,直接在gradle文件裏面寫也是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章