com.android.dex.DexIndexOverflowException in Android Studio 3.0

10

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

    
orelzion 22.11.2017, 10:17
quelle

3 Antworten

0

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.

    
Vaiden 23.11.2017 10:00
quelle
0

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

hinzugefügt %Vor%

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

    
orelzion 28.11.2017 12:36
quelle
0

Gelöst durch Aktualisieren der Tools zum Erstellen von Google Classes von Version 3.0.1 auf 3.1.0-rc02. Also bitte versuchen:

%Vor%     
Flavio 13.03.2018 11:21
quelle

Tags und Links