Ich benutze 'com.android.tools.build:gradle:0.6.+', um meine Android-Anwendung zu bauen.Beste Methode Android Gradle Abhängigkeiten zu verwalten
Es ist bekannt, dass Android dex nicht verschiedene Versionen derselben Bibliothek enthalten kann. Aber wie man mit der Situation umgeht, wenn Maven-Abhängigkeit verwendet werden soll, benötigt eine Bibliothek, die Sie bereits benutzen, aber nur eine andere Version. Beispiel. in build.gradle Datei folgenden Eigenschaften:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.github.chrisbanes.bitmapcache:library:2.3'
}
produziert Fehler:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/FragmentManager$OnBackStackChangedListener;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)...
Dieser Fehler aus den folgenden Gründen geschieht: http://search.maven.org/remotecontent?filepath=com/github/chrisbanes/bitmapcache/library/2.3/library-2.3.pom erfordert com.google.android:support-v4
Und com.android.support:appcompat-v7:+ enthält bereits com.google.android:support-v4, was zur doppelten Aufnahme der gleichen Klassendateien führt.
ich jetzt bin auf der Suche nach Antworten wie: Verwenden Ant Laden Sie alle Abhängigkeiten in den Ordner ‚libs‘ und verwenden, um Dateien kompilieren (‚...‘) usw.
ändern olso Aufnahme um nicht Hilfe.
Ich bin auf der Suche nach einer robusten und praktischen Lösung. Wie kann man Maven-Abhängigkeiten nutzen und trotzdem frei von den oben beschriebenen Ausnahmen? Ideen? Wie reife Android-Entwickler das schaffen?
Also, wenn ich Sie richtig verstehe, betrachten Sie das beschriebene Problem als Fehler in maven repository und beheben maven POM wird das Problem beheben? –
@ XP-Vit - es ist ein Problem mit dem POM eine bestimmte Version, ja. – ianhanniballake