2015-04-29 5 views
4

при попытке перейти на эспрессо 2.1 я ударил следующий дорожно-блокНесколько DEX файлы определяют Landroid/поддержка/тест/эспрессо/вно/DrawerActions

com.android.dex.DexException: Multiple dex files define Landroid/support/test/espresso/contrib/DrawerActions$1; 
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 
    at com.android.dx.command.dexer.Main.run(Main.java:246) 
    at com.android.dx.command.dexer.Main.main(Main.java:215) 
    at com.android.dx.command.Main.main(Main.java:106) 

, но я вижу только один источник для этого:

androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.1' 

любой намек на то, как это решить? Это дерево зависимостей:

androidTestCompile - Classpath for compiling the androidTest sources. 
+--- com.android.support.test:runner:0.2 
| +--- junit:junit-dep:4.10 
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3 
| +--- com.android.support.test:exposed-instrumentation-api-publish:0.2 
| \--- com.android.support:support-annotations:22.0.0 
+--- com.android.support.test:rules:0.2 
| \--- com.android.support.test:runner:0.2 (*) 
+--- com.android.support.test.espresso:espresso-contrib:2.1 
| +--- com.android.support:recyclerview-v7:22.0.0 
| | +--- com.android.support:support-v4:22.0.0 
| | | \--- com.android.support:support-annotations:22.0.0 
| | \--- com.android.support:support-annotations:22.0.0 
| +--- com.android.support:support-v4:22.0.0 (*) 
| \--- com.android.support.test.espresso:espresso-core:2.1 
|   +--- com.android.support.test:rules:0.2 (*) 
|   +--- com.squareup:javawriter:2.1.1 
|   +--- org.hamcrest:hamcrest-integration:1.1 
|   | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3 
|   +--- com.android.support.test.espresso:espresso-idling-resource:2.1 
|   +--- org.hamcrest:hamcrest-library:1.1 
|   | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3 
|   +--- javax.inject:javax.inject:1 
|   +--- com.google.code.findbugs:jsr305:2.0.1 
|   +--- com.android.support.test:runner:0.2 (*) 
|   +--- javax.annotation:javax.annotation-api:1.2 
|   \--- org.hamcrest:hamcrest-core:1.1 -> 1.3 
+--- info.cukes:cucumber-java:1.2.0 
| \--- info.cukes:cucumber-core:1.2.0 
|   +--- info.cukes:cucumber-html:0.2.3 
|   +--- info.cukes:cucumber-jvm-deps:1.0.3 
|   \--- info.cukes:gherkin:2.12.2 
+--- info.cukes:cucumber-android:1.2.0 
+--- com.google.dexmaker:dexmaker-mockito:1.0 
| \--- org.mockito:mockito-core:1.9.5 
|   \--- org.objenesis:objenesis:1.0 
+--- org.assertj:assertj-core:1.7.1-TARGETFIX 
+--- com.uphyca:android-junit4:0.5 
\--- junit:junit:4.11 
    \--- org.hamcrest:hamcrest-core:1.3 
+0

Опубликуйте свой 'build.gradle'. –

+0

Я добавил дерево зависимостей - к сожалению, я не могу опубликовать build.gradle – ligi

+0

Помогает ли это? http://stackoverflow.com/a/29858606/950427 –

ответ

0

маленький мир;)

Это DexException из нескольких файлов тны вызваны косвенно эспрессо-вно: 2,1, реальная первопричина ком. android.support.test: runner: 0.2, который имеет некоторые другие подзависимости.

Удаление тест: бегун работает для меня.

Хотя есть еще один post говорят, что это из-за com.android.support:support-v4, в вашем случае, это 22.0.0 для теста, и, возможно, ваш модуль приложения использует другой версия. Поэтому я пытался:

androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.1') { 
    exclude group: 'com.android.support', module: 'support-v4' 
    exclude module: 'support-annotations' 
} 

, но это совсем не работает.

+1

, так что ваш ответ - это то, что на самом деле не работает ... –

+1

@OvidiuLatcu Я просто пытаюсь проанализировать проблему, записать подсказки и то, что работает, или нет. Даже если он не работает, он может быть полезен. –

+0

@JingLi Что? Это страшная причина. –

Смежные вопросы