多个dex文件在android studio中定义Landroid / support / v4 /

我可以integrate (add & work) with many libraries

但是对于ActionBarSherlock库,我有很多问题。

第一个问题是流行的问题Multiple dex files define

我知道duplicated android-support-v4.jar导致它,但我现在不能解决这个问题:

Error:Execution failed for task ':fitness:dexDebug'.

Error Code:
2
Output:
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)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
    at com.android.dx.command.dexer.Main.run(Main.java:230)
    at com.android.dx.command.dexer.Main.main(Main.java:199)
    at com.android.dx.command.Main.main(Main.java:103)

我以同样的错误跟着答案。 它使用了:

dependencies {
    compile('...') {
      exclude module: 'support-v4'
    }

    compile 'com.android.support:support-v4:18.0.+'
}

但我收到第二个问题unsupported Gradle DSL method found: 'exclude()'! 错误。 所以我改变了build.gradle main module build.gradle

//configurations {
//    all*.exclude group: 'com.android.support', module: 'support-v4'
//}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':google-play-services')
    compile files('/google-play-services/libs/google-play-services.jar')
    compile (project(':actionbarsherlock')) {
        exclude(module: 'support-v4')
    }
    compile 'com.android.support:support-v4:18.0.+'
}

Solved 第二个问题 ,但仍然得到第一个问题 Multiple dex files define错误。

我读了很多主题,但现在还不能解决第一个问题

请帮帮我,

谢谢,

p / s:我可以与Gradle成功同步,但运行时会出现以上错误。

我使用Android Studio 0.5.5

编辑

build.gradle ActionBarSherlock build.gradle ,它只有一个android-support-v4.jar

dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
}

setting.gradle像这样:

include ':fitness', ':google-play-services',':actionbarsherlock'

@Garbriele:我更新了新的问题,显示build.gradle of project build.gradle of main modulebuild.gradle of main module build.gradle project

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

build.gradle完成main module build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // Get following error in this line
} 

我在下面得到这个错误:

在这里输入图像描述

好的,感谢@Garbriele评论,我已经使用这个解决了这个问题:

repositories {
            mavenCentral()
        }
dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // Get following error in this line
    } 

编辑2当我这样说:

repositories {
            mavenCentral()
        }
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.google.android.gms:play-services:+'
}

仍然得到第一个问题 Multiple dex files define错误。

我现在想要的是如何通过Maven成功添加com.google.android.gms:play-services库,

请帮帮我,

谢谢,

UPDATE

遵循以下步骤之后:

  • 通过Maven将该库放入主模块的build.gradle中: compile 'com.google.android.gms:play-services:+'

  • Restart Android Studio

  • Sync project with gradle

  • 不再再发生这个错误。


    这么奇怪,

    当我像这样设置我的依赖关系时:

    repositories {
                mavenCentral()
            }
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.google.android.gms:play-services:+'
    }
    

    我仍然得到第一个问题 Multiple dex files define错误。

    但是按照以下步骤操作:

  • 通过Gradle将该库放入主模块的build.gradle中: build.gradle compile 'com.google.android.gms:play-services:+'

  • Restart Android Studio

  • Sync project with gradle

  • 我不再得到这个错误。


    我在我的libs目录中有重复的库:

    $ ls -la libs/
    total 80
    drwxr-xr-x   5  wheel    170 25 Sep 22:09 .
    drwxr-xr-x  10  wheel    340 25 Sep 22:07 ..
    -rw-r--r--   1  wheel   3736 25 Sep 21:36 ApiComponent.jar
    -rw-r--r--   1  wheel  28741 25 Sep 21:36 DependencyService.jar
    -rw-r--r--   1  wheel   3736 25 Sep 22:09 classes.jar
    

    删除classes.jar为我工作。 我修改了我的DependencyService项目以生成DependencyService.jar而不是classes.jar导致重复。

    链接地址: http://www.djcxy.com/p/20015.html

    上一篇: Multiple dex files define Landroid/support/v4/ in android studio

    下一篇: How to debug a Scala SBT project in IntelliJ 13?