Android Studio Gradle Error:多个dex文件定义

My *_*use 19 android

我在尝试在Android Studio中构建项目时遇到此错误(我正在尝试从Eclipse迁移):
输出:

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)
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索和检查stackoverflow之后,最可能的原因是重复的库引用.
我的项目中有很多库,比如Facebook SDK,SlidingMenu等,需要android-support-v4.jar,所以我将它复制到我的主项目的/ libs文件夹中,然后将其从所有其他项目的libs文件夹中删除.然后我去了"Open Module Settings"并将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
Run Code Online (Sandbox Code Playgroud)

这样可以吗?如果我在模块设置中删除了这个库依赖项,那么在尝试编译项目时我会遇到更多错误

小智 52

在build.gradle文件中,尝试在android块中添加以下块.

dexOptions {
    preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)

  • 你好.有谁知道为什么这有效.很高兴知道我的问题的解决方案,但我很好奇的原因. (7认同)
  • 我爱你的家伙! (3认同)
  • 是!我浪费了过去3个小时试图解决这个问题; 这是有效的答案. (2认同)
  • 最后我可以下班回家了!非常感谢!:-) (2认同)