Несколько файлов dex определяют Landroid/support/v4/in android studio

Я могу 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 of main module следующим образом:

//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 of ActionBarSherlock, он имеет только один 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 module build.gradle of project:

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

build.gradle of main module после редактирования:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' // Get following error in this line
} 

Я получил эту ошибку ниже:

enter image description here

Хорошо, спасибо за комментарий @Garbriele, я уже исправил это, используя это:

repositories {
            mavenCentral()
        }
dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' // 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.

Теперь я хочу, как успешно добавить библиотеку com.google.android.gms:play-services через Maven,

Пожалуйста, помогите мне,

Спасибо,

UPDATE

Последующие действия:

  • Поместите библиотеку через Maven в build.gradle основного модуля: compile 'com.google.android.gms:play-services:+'

  • Restart Android Studio

  • Sync project with gradle

Больше не получать эту ошибку.

Ответ 1

Так странно,

Когда я устанавливаю свои зависимости следующим образом:

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

Я все еще получаю ошибку Первая проблема Multiple dex files define.

Но после выполнения следующих шагов:

  • Поместите библиотеку через Gradle в build.gradle основного модуля: compile 'com.google.android.gms:play-services:+'

  • Restart Android Studio

  • Sync project with gradle

Я больше не получаю эту ошибку.

Ответ 2

У меня были дубликаты библиотек в моем каталоге 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

Удаление классов .jar сработало для меня. Я изменил проект DependencyService для создания DependencyService.jar вместо classes.jar, что вызвало дублирование.