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

逆觴發表於2014-12-09

如果你用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檔案裡面寫也是一樣的。

相關文章