Ich habe eine Bibliothek, die ich für Espresso-Tests verwende. Wenn ich meinem Projekt hinzugefügt habe, kann ich meine Tests nicht kompilieren.
Gradle gibt diesen Fehler aus
%Vor%Was wirklich komisch ist, weil ich multiDex bereits in meinem Projekt aktiviert habe
Mein Projekt build.gradle
%Vor%Meine Anwendungsklasse
%Vor%AndroidManifest
%Vor%Das Entfernen der Bibliothek löst das Problem
Irgendwelche Vorschläge?
BEARBEITEN Ich habe versucht, es auf verschiedene Arten zu beheben, und ich entdeckte, dass dies nur geschah, wenn ich die Bibliothek als
einfügte %Vor%Aber wenn es als reguläres
verwendet wird %Vor%Der dex Fehler verschwindet
Wirklich seltsam
BEARBEITEN
Es passiert nur mit Gradle 3.0.1, wenn ich wieder auf Grad 2.3.3 gehe, ist das Problem nicht mehr
Nun, das ist seltsam, aber es ist schon einmal passiert.
Ich bin auf diesen Thread gestoßen, der diesen Zusatz vorgeschlagen hat:
%Vor%Dies sollte das Problem behandeln, dass die String-Nummer zu groß ist, im Gegensatz zu der Anzahl der Methoden, die zu groß sind.
Mehr über Jumbo-Modus vs Multidex hier: Android: Jumbo-Modus vs Multidex
Fröhliches Testen.
Nun, nach vielen Teststunden habe ich es endlich zum Laufen gebracht.
Ich habe einige Dinge in dem Projekt geändert, also kann ich nicht sagen, was das Problem verursacht hat, aber zum größeren Nutzen schreibe ich hier alles, was ich getan habe, und ich hoffe, dass, wenn jemand jemals damit konfrontiert wird Solch ein Problem mindestens eine Lösung wird ihr helfen.
Also habe ich minSdkVersion auf 21 geändert. Ja, es war keine Voraussetzung mit Android Studio 2.3.3, aber anscheinend ist es jetzt, wenn Sie Espresso verwenden.
Aber keine Sorge, Ihre Anwendung kann immer noch ältere Versionen unterstützen, wenn Sie nicht testen. Um es so zu konfigurieren, habe ich das zu meinem build.gradle
Abgesehen davon habe ich die MultiDex-Abhängigkeit von 1.0.1
auf 1.0.2
aktualisiert und dies in allen Abhängigkeiten erzwungen.
Ich habe auch guava
library auf com.google.guava:guava:22.0-android
aktualisiert, was zu einem Abhängigkeitskonflikt geführt hat, den ich durch Erzwingen einer anderen Bibliothek gelöst habe (alle Forcing-Strategien sind unten aufgeführt).
Ich hatte dann einen Abhängigkeitskonflikt mit espresso-web
, den ich auch erzwingen musste.
Das ist meine Lösungsstrategie im Moment
%Vor%Ich hoffe, dass dies jedem hilft, vielen Dank für all die Menschen, die versucht haben zu helfen, brachten Sie viele Ideen, die mir bei der endgültigen Lösung geholfen haben
Tags und Links android android-multidex