Résoudre l'erreur More than one file was found with OS independent path 'META-INF/LICENSE'

Lors de la construction de votre application Android, l'outil Gradle peut vous afficher un message d'erreur relatif à un fichier présent en double. Le message sera par exemple "More than one file was found with OS independent path 'META-INF/LICENSE'". En effet, dans la construction de votre application, certains fichiers, notamment ceux liés aux licences d'utilisation, doivent être uniques.

Pour corriger cela, il n'est pas nécessaire de chercher et supprimer des fichiers dans votre application. Les fichiers en double peuvent être situés dans des librairies liées à votre projet. Dans ce cas nous vous déconseillons de modifier les librairies. Vous aurez à nouveau le message d'erreur lors d'une éventuelle mise à jour et il y a en plus des risques d'erreurs supplémentaires dans votre application. Pour gérer ces problèmes, Gradle fournit des possibilités de paramétrage à ajouter dans le fichier de configuration "build.gradle" de votre projet.

Les directives sont à renseigner dans la section "packagingOptions". La directive "exclude" permet d'ignorer un fichier. Pour corriger le message d'erreur, il suffit d'ajouter cette directive suivie du fichier signalé par le message d'erreur.

packagingOptions {
    exclude 'META-INF/LICENSE'
}

Si le fichier en question est un fichier de programmation, vous devrez peut-être choisir entre ces fichiers car une version fonctionnera avec toute l'application et pas l'autre. Dans le cas, utilisez la directive "pickFirst". Elle indique à Gradle le fichier à choisir en priorité lors de la construction. Les autres doublons seront ignorés.

packagingOptions {
    pickFirst 'monFichierAInclure.so'
}

Dans les deux cas, utilisez ensuite les menus "Clean Project" et "Rebuild Project" pour lancer une construction propre du projet.

Java