Erreur de classe de duplication Android lors de l’inclusion d’Apache POI

J’ai un problème avec apache poi excel api (xlsx). J’utilise le studio Android et j’ai ajouté les bibliothèques de poi dans les dossiers “libs”. Cette erreur apparaît pour une raison quelconque (voir ci-dessous). Comment pourrais-je le résoudre? Pourriez-vous s’il vous plaît expliquer comment vous avez identifié le problème?

xmlbeans-2.6.0, schémas-poi-ooxml-3.10.1-20140818, poi-ooxml-3.10.1-20140818, poi-3.10.1-20140818, log4j-1.2.13, junit-4.11, dom4j-1.6. 1, commons-logging-1.1, commons-codec-1.5

Merci!

Mon build.gradle ressemble à ce qui suit (à l’exclusion des autres éléments génériques) …

dépendances {comstackr fileTree (inclure: [‘* .jar’], dir: ‘libs’)}

android {packagingOptions {exclure ‘META-INF / LICENSE’ exclut ‘META-INF / NOTICE’ exclut ‘META-INF / LICENSE.txt’ exclut ‘META-INF / NOTICE.txt’}}

Mon app.iml n’a aucune entrée en double non plus …

Erreur

Erreur: La classe org.apache.xmlbeans.xml.stream.Location a déjà été ajoutée à la sortie. Veuillez supprimer les copies en double. compilateur qui ne ciblait pas le format de fichier .class moderne. Le recommandé (org.apache.log4j.chainsaw.ControlPanel $ 1) qui ne contient pas d’atsortingbut EnclosingMethod associé. Cette classe a probablement été produite par une solution qui consiste à recomstackr la classe depuis la source, en utilisant une erreur du compilateur 1 à jour; avorter

Veuillez noter que vous pouvez rencontrer un certain nombre de problèmes lors de l’utilisation d’Apache POI sur Android. Les classes en double dans XmlBeans ne peuvent actuellement être évitées qu’en reconditionnant le fichier jar.

Il y a actuellement deux projets qui tentent de résoudre la plupart des problèmes pour vous, tous les deux re-package toutes les classes, y compris les dépendances dans un fichier JAR unique pour le rendre plus facile à déployer. De plus, certains ombrages sont effectués pour éviter les problèmes avec les espaces de noms javax qu’Android ne permet pas.

  1. https://github.com/andruhon/android5xlsx
  2. https://github.com/centic9/poi-on-android/ (maintenu par moi)

Le premier est actuellement basé sur POI 3.12, tandis que le second peut être recompilé plus facilement avec les nouvelles versions de POI.

Le fichier JAR xmlbeans 2.6 de Maven Central contient des entrées de classe en double. Le XMLBeans JIRA a un problème ouvert pour le problème. Jusqu’à ce qu’ils publient un nouveau JAR, je pense que je vais décompresser le jar, ce qui écrasera les doublons, re-comstackra le code et le mettra dans mon répertoire libs pour le moment.