2014-04-03 33 views
14

試圖建立在我的Android Studio項目(我試圖從Eclipse的遷移)時,我得到這個錯誤:
輸出:
的Android工作室搖籃錯誤:多DEX文件定義

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) 

谷歌搜索和檢查stackoverflow後最可能的原因是重複庫引用。
我的項目中有很多庫,例如Facebook SDK,SlidingMenu等需要android-support-v4.jar的庫,所以我將它複製到我的主項目的/ libs文件夾中,隨後將其從所有其他項目中刪除libs文件夾。然後我去了「打開模塊設置」,並將support-v4添加爲需要它的庫(例如Facebook SDK)的庫依賴項。
然後清潔工程 - >運行,但我仍然得到這個多DEX文件的錯誤

運行gradle -q dependencies顯示:

+--- project :facebook-android-sdk-3.5.1:facebook 
| \--- com.android.support:support-v4:+ -> 19.1.0 
+--- project :SlidingMenu:library 
| \--- com.android.support:support-v4:+ -> 19.1.0 

這樣行不行?如果我在模塊設置中刪除了這個庫依賴項,那麼當嘗試編譯我的項目時我會得到更多錯誤

回答

50

在您的build.gradle文件中,嘗試在您的android塊中添加以下塊。

dexOptions { 
    preDexLibraries = false 
} 
+3

我愛你的人! – IlyaEremin

+2

是的!我浪費了過去3個小時試圖弄清楚這一點;這是有效的答案。 –

+0

我直接從eclipse(ADT)導入一個項目到eclipse的工作室它的工作正常,同時導入該項目與支持libreary項目到工作室獲取錯誤找到多個dex文件請幫助並提供解決方案 – Harsha

1

正確的答案是:

dexOptions { 
    preDexLibraries = false 
} 
+1

對不起,我沒有注意到這個網站的規則 – jiong103

2

只是一個乾淨的構建工作對我來說, 只是這樣做Android Studio中:

Got to Build > Clean Project

See image for reference

0
dexOptions { 
    preDexLibraries = false 
} 

Got to Build > Clean Project 

Got to Build > Rebuild Project 
相關問題