2016-11-22 2 views
1

Ich habe Kryo libs und es ist ziemlich gut. Wenn ich jedoch ein signiertes APK erstellen möchte, kann es aufgrund des Fehlers nicht erstellt werden:Noch ein Zip doppelten Eintrag

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

java.io.IOException: Can't write [C:\AndroidProjects\App\app\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar] (Can't read [C:\AndroidProjects\App\app\importLibs\minlog-1.3.0.jar(;;;;;;**.class)] (Duplicate zip entry [minlog-1.3.0.jar:com/esotericsoftware/minlog/Log$Logger.class]))

build gradle (module app) 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.google.android.gms:play-services-ads:9.4.0' 
    compile 'com.android.support:design:24.1.1' 
    compile 'com.google.android.gms:play-services:9.4.0' 
    compile 'com.google.android.gms:play-services-auth:9.4.0' 
    compile 'com.google.android.gms:play-services-gcm:9.4.0' 
    compile files('importLibs/kryo-2.23.0.jar') 
    compile files('importLibs/minlog-1.3.0.jar') 
    compile files('importLibs/objenesis-2.1.jar') 
    compile files('importLibs/reflectasm-1.10.1-shaded.jar') 
} 

proguard Datei

 proguard-rules.pro 
    -dontwarn com.esotericsoftware.** 
    -dontwarn org.objenesis.** 
    -keep class com.esotericsoftware.**{*;} 

Was genau muss ich schreiben, damit es funktioniert?

+0

check 'importLibs'. Kommentar 'Kompilieren Sie die Dateien ('importLibs/minlog-1.3.0.jar')' und stellen Sie sicher, dass 'multiDexEnabled true' gesetzt ist. –

+0

Wenn Sie 'minlog-1.3.0.jar' auskommentieren, wird 'reflectasm-1.10.1-shaded.jar 'haben das gleiche Problem. Wenn Sie beide auskommentieren, kann die Anwendung nicht funktionieren. – user3635998

Antwort

1

Es kann Fall sein, wenn eine Bibliothek Teil einer anderen Bibliothek, die Sie in Ihrem Projekt importiert haben den lib Abhängigkeitsbaum mit folgendem Befehl Für Android zu prüfen, benutzen Sie diese Zeile

gradle app:dependencies 

oder wenn Sie ein gradle Wrapper:

./gradlew app:dependencies 

Oder aber ein weniger beliebtes Android Studio wird GradleView genannt Plugin, das Ihr ganzen lib Baum in Ihrer Anwendung verwendete geben kann und wo auch könnte es kollidierende wi wird th einige andere Bibliothek.

Verwandte Themen