J'essaie d'exécuter des tests Android, cependant, le compilateur se plaint de l'existence de plusieurs fichiers dex.
Multiple dex files define Lorg/hamcrest/MatcherAssert;
J'essaie donc de filtrer les dépendances dupliquées: $ ./gradlew -q dependencies app:dependencies --configuration androidTestCompile
Cependant, j'obtiens la sortie suivante:
------------------------------------------------------------
Project :app
------------------------------------------------------------
androidTestCompile - Classpath for compiling the androidTest sources.
+--- org.mockito:mockito-core:1.9.5
| +--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| \--- org.objenesis:objenesis:1.0 -> 2.1
+--- com.google.dexmaker:dexmaker-mockito:1.2
| +--- com.google.dexmaker:dexmaker:1.2
| \--- org.mockito:mockito-core:1.9.5 (*)
+--- com.Android.support.test.espresso:espresso-core:2.0
| +--- com.squareup:javawriter:2.1.1
| +--- org.hamcrest:hamcrest-integration:1.1
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- org.hamcrest:hamcrest-library:1.1
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- javax.inject:javax.inject:1
| +--- com.Android.support.test.espresso:espresso-idling-resource:2.0
| +--- com.Android.support.test:testing-support-lib:0.1
| | \--- junit:junit-dep:4.10
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- com.google.code.findbugs:jsr305:2.0.1
| +--- javax.annotation:javax.annotation-api:1.2
| \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
+--- com.Android.support.test:testing-support-lib:0.1 (*)
+--- org.powermock:powermock-module-junit4:1.5.6
| +--- junit:junit:4.11
| | \--- org.hamcrest:hamcrest-core:1.3
| \--- org.powermock:powermock-module-junit4-common:1.5.6
| +--- junit:junit:4.4 -> 4.11 (*)
| +--- org.powermock:powermock-core:1.5.6
| | +--- org.powermock:powermock-reflect:1.5.6
| | | \--- org.objenesis:objenesis:2.1
| | \--- org.javassist:javassist:3.18.2-GA
| \--- org.powermock:powermock-reflect:1.5.6 (*)
\--- org.powermock:powermock-api-mockito:1.5.6
\--- org.powermock:powermock-api-support:1.5.6
+--- org.powermock:powermock-core:1.5.6 (*)
\--- org.powermock:powermock-reflect:1.5.6 (*)
(*) - dependencies omitted (listed previously)
Je suis confus quant à la signification des flèches (->). Que signifient-ils?
Cela signifie que le graphe de dépendances contient plusieurs dépendances avec les mêmes group
et module
mais des versions différentes pour par exemple org.hamcrest:hamcrest-core
. Gradle essaie de résoudre automatiquement les versions en conflit - par défaut, la dernière version est choisie. Sur le côté gauche de ->
est la version demandée, à droite la version qui sera choisie. Ici une question similaire peut être trouvée.