Ich versuche, ein Modul, dessen Abhängigkeitsbaumes wieGradle's Konfliktlösung funktioniert nicht mit Android-Projekten?
sieht+--- com.squareup.burst:burst-junit4:1.0.2
| +--- com.squareup.burst:burst:1.0.2
| \--- junit:junit:4.11 -> 4.12
| \--- org.hamcrest:hamcrest-core:1.3
+--- 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
| +--- 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
...
zu kompilieren Wie Sie sich ein hamcrest-core
Versionskonflikt sehen, aber gradle scheint den Konflikt und gilt den Standard „neueste Version“ Strategie zu erkennen, die ist genau das, was ich will.
jedoch bei dem Versuch, assembleDebugTest
(entweder manuell oder durch Android Studio) I
com.android.dex.DexException: Multiple dex files define Lorg/hamcrest/MatcherAssert;
Einige Antworten auf ähnliche Fragen vorschlagen exclude
ing die unerwünschten Gläser, aber ich habe eine Reihe von ähnlichen Konflikten begegnet bekommen zu laufen und es wird etwas außer Kontrolle geraten.
Warum gradle die nicht Standard-Konfliktstrategie automatisch das ältere Glas zu entfernen? Unterdrückt das android grodle Plugin diese Funktionalität?
http://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice-accessibility –
Ich habe das gesehen, und ich verstehe die schnelle Lösung. Meine Frage ist, warum die Standardauflösungsstrategie von Graple nicht dazu verwendet wird, eines der Gläser automatisch zu entfernen, wie ich es von [doc] (http://www.gradle.org/docs/current/dsl/org) erwarten würde. gradle.api.artifacts.ResolutionStrategy.html). –
könnte einen Build mit -verbose ... versuchen, wo configurations.resolutionStrategy {} aufgerufen wird .... wenn NICHT aufgerufen, dann geben Sie eine eigene Implementierung davon an. –