2014-04-03 77 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 
相关问题