2016-05-10 9 views
11

Ich benutze externe Bibliotheken Payu Geld SDK und Linkedin-SDK, beide verwendet Volley-Bibliotheken, die während der Kompilierung Projekt gibt doppelte Eingabe von AuthFailureError.classdoppelten Eintrag: com/android/volley/AuthFailureError.class beim Kompilieren von Projekt in android Studio

Fehler: Ausführung fehlgeschlagen für Task ': app: packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException: duplicate entry: com/android/volley/AuthFailureError.class"

i habe auch Code-Modul auszuschließen folgende, aber immer noch denselben Fehler

configurations{ all*.exclude module: 'com.android.volley' }

bitte helfen

+0

aufgrund dieses Ich denke, http://stackoverflow.com/a/28937822/2032561 – Bharatesh

+0

@Ankur haben Sie die Lösung für dieses Problem hat? bitte antworte so schnell wie möglich. – Dev

+0

@Dev ... ja nach so viel Mühe..ich tat das mit dem Ausschließen von Support-v4-Bibliothek 'compile ('com.android.support:appcompat-v7:23.2.1') ​​{ Modul ausschließen: 'support- v4 ' } kompilieren (' com.google.android.gms: play-services: 8.3.0 ') { Modul ausschließen:' support-v4 ' } ', wenn es nicht funktioniert, lassen Sie mich wissen, welche Bibliotheken schaffen ein Problem. –

Antwort

0

Dies ist ein Beispiel, wie Klassen in Abhängigkeiten auszuschließen, wenn es Duplikat Eintrag in Großbuchstaben.

compile ('com.google.api-client:google-api-client-android:1.17.0-rc') { 
    exclude module: 'httpclient' 
} 

oder mit der Art und Weise versuchen, fügen Sie einfach etwas mehr Text

configurations { 
    all*.exclude group: 'com.android.support', module: 'support-v4' 
} 

So, jetzt, was Sie tun müssen, ist

Suchen STRG + SHIFT + N in Android-Studio für die Klasse AuthFailureError .class Sehen Sie, welche JAR enthält diese und entfernen Sie sie wie oben (Dies ist nur als Beispiel/Sie müssen die doppelte Klasse herausfinden und manuell entfernen)

+0

immer noch gleichen Fehler für 'Konfigurationen { alle * .exclude Gruppe: 'com.android.volley', Modul: 'library-1.0.18' }' auch, wenn ich Modul zu meinem build.gradle hinzufügen, gibt es Fehler 'Gradle DSL-Methode nicht gefunden:' exclude() '' –

2

multiDexEnabled true im DefaultConfig Abschnitt Ihrer gradle Datei

, hinzufügen Dann

Kompilierung 'com.android.support:multidex:1.0.1'

Schließlich fügen Sie unten in Ihrer Anwendungsklasse in Ihren Abhängigkeiten:

@Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 

Überprüfen Sie auch, ob Sie volley.jar in Ihrem libs-Ordner verwenden. Wenn ja, löschen Sie diese JAR-Datei und kompilieren Sie sie erneut. Manchmal stehen JAR-Abhängigkeiten mit denen in Konflikt, die mit Remote-Quellen kompiliert wurden.

+0

Ich habe bereits folgende Methode hinzugefügt, aber gleichen Fehler –

+0

Überprüfen Sie die aktualisierte Antwort – asdec90

+0

, aber wenn ich diese JAR-Datei aus dem Ordner libs entfernen, wird mein Code nicht ausgeführt werden, gibt es Fehler, der keine volley finden kann –

0

Okay, habe ich meine Antwort

auf Mac statt Kontrolle n ist es Befehl 0 und der Befehl i brauchte, war

Konfigurationen { alle * .exclude Modul: 'Volley-release' }

2

Entfernen Sie einfach die doppelte JAR-Datei (Hinweis: neue Version verwenden, alte Version löschen) zum Importieren "com.android.volley.AuthFailureError" in build.gradle. Dann säubern Sie das Projekt und bauen Sie das Projekt um und führen Sie das Ergebnis aus.

+0

Sie können Dateien nicht löschen, weil sie in externen Bibliotheken sind, die Sie ausschließen müssen –

1

Ich hatte dieses Problem, als ich versuchte, die APK (Release) zu generieren, und ich löste es das Ändern der Linkedin-SDK Build.gradle:

Von:

dependencies { 
    compile 'com.android.support:support-annotations:20.0.0' 
    compile 'com.android.support:support-v4:21.0.+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile files('libs/volley.jar') 
    androidTestCompile('junit:junit:4.12') } 

An:

dependencies { 
    compile 'com.android.support:support-annotations:20.0.0' 
    compile 'com.android.support:support-v4:21.0.+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.volley:volley:1.0.0' 
    androidTestCompile('junit:junit:4.12') } 
0

Entfernen Sie einfach Ihre Volley-Bibliothek von dependancy. Versuchen Sie, sauber und Wiederaufbau-Projekt funktioniert es für mich. Bsp. payusdk implementiert auch die Volley-Bibliothek, daher ist die Ausnahme eine doppelte Eingabe. Ich hoffe, es funktioniert. weil ich auch diesen Fehler gefunden habe und ich diese Dinge mache, funktioniert es. Danke.

5

Ich stolperte über diesen gleichen Fehler, und nach dem Lesen this konnte ich es lösen.

Versuchen Sie diese Zeile in Ihrer App dir build.gradle Datei hinzufügen -

android{ 
configurations { 
    all*.exclude group: 'com.android.volley' 
}} 

Hoffnung, das hilft.

0

Ich hatte das gleiche Problem beim Erstellen von Jenkins, seltsam es funktionierte gut auf meinem lokalen Rechner. Nach dem Hinzufügen unter Ausschluss funktionierte es sowohl auf dem lokalen Rechner als auch auf Jenkins.

android{ 
configurations { 
    all*.exclude group: 'com.android.volley' 
}} 

Ich habe Konfigurationsblock meiner App Build.gradle in Android-Bereich hinzugefügt.

Wenn es die Version ist 22 Kompilieren SDK Materie und Version Build-Tools ist 25.0.0

Dieser arbeitete wie ein Charme.

0

den unter Befehl im Android Studio Terminal Verwenden Sie den Abhängigkeitskonflikt Daten zu erhalten - [Ersetzen mit Ihrem App Namen]

./gradlew -q :<app>:dependencyInsight --dependency volley --configuration compile 

Wenn Sie neueste Volley-Bibliothek von android [https://github.com/google/volley/releases] verwenden, fügen Sie unter zwei Linien in Ihre build.gradle-Datei unter jedem der Kompilierungsbibliothekseinträge, die einen Konflikt haben.

Ex:

compile('com.xyz:abc:1.1.0-RELEASE') { 
     exclude module: 'library' 
     exclude group: 'com.mcxiaoke.volley' 
} 
Verwandte Themen