web-dev-qa-db-fra.com

Avertissement Android Proguard: impossible d'écrire sur la ressource (entrée Zip dupliquée)

J'ai activé proguard et obtenu:

Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-io-2.4.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-io-2.4.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-collections-3.2.1.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-collections-3.2.1.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [joda-time-2.7-no-tzdb.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [joda-time-2.7-no-tzdb.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-primitives-1.0.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/services/javax.annotation.processing.Processor] (Duplicate Zip entry [icepick-processor-2.3.6.jar:META-INF/services/javax.annotation.processing.Processor])
Warning:can't write resource [.readme] (Duplicate Zip entry [classes.jar:.readme])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-lang-2.6.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-lang-2.6.jar:META-INF/NOTICE.txt])

Qu'est-ce que cela signifie? Devrais-je exclure quelque chose comme ici?

configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
}
19
Caipivara

Vous utilisez une bibliothèque avec des fichiers en double, c’est un bogue dans Gradle, pour résoudre, utilisez ceci dans votre projet build.gradle

Android {
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude '.readme'
    }
}
30
Santiago

De Manuel Proguard :

Attention: impossible d'écrire la ressource ... Entrée Zip en double

Vos fichiers JAR contiennent plusieurs fichiers de ressources portant le même nom . ProGuard continue de copier les fichiers de ressources comme d'habitude, en ignorant les fichiers fichiers avec des noms précédemment utilisés. Une fois de plus, l'avertissement peut être un indication d’un problème cependant, il est donc conseillé de supprimer le les doublons. Un moyen pratique de le faire consiste à spécifier des filtres sur le fichier pots d'entrée. Il n'y a pas d'option pour désactiver ces avertissements.

Le processus de construction Android standard spécifie automatiquement les fichiers JAR pour vous. Il n’est peut-être pas facile de les filtrer pour supprimer Ces avertissements. Vous pouvez supprimer les fichiers de ressources en double manuellement De l’entrée et de la bibliothèques. _

L'ajout de l'option -ignorewarnings dans le fichier de configuration de proguard a fonctionné pour moi. Il avertit toujours pour 'META-INF/LICENSE.txt' mais la construction n'échoue pas. Mais utilisez cette option uniquement si vous êtes certain de ses effets. Suivez http://proguard.sourceforge.net/manual/usage.html#ignorewarnings pour plus d'informations.

0
Ashish Kshirsagar