2014-09-21 20 views
6

Ho un problema con apache poi excel api (xlsx). Sto usando Android Studio e ho aggiunto le librerie poi alle cartelle "libs". Questo errore sta spuntando per qualche motivo (vedi sotto). Come potrei risolverlo?, Potresti spiegare come hai identificato il problema?Errore di classe duplicato Android includendo Apache POI

xmlbeans-2.6.0, poi-ooxml-schemi-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

Grazie!

mio build.gradle è simile al seguente (escludendo l'altra roba generica) ...

dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }

android { packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } }

mio app.iml non ha voci duplicate o ...

errore

Error:Class org.apache.xmlbeans.xml.stream.Location has already been added to output. Please remove duplicate copies. compiler that did not target the modern .class file format. The recommended (org.apache.log4j.chainsaw.ControlPanel$1) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a solution is to recompile the class from source, using an up-to-date compiler 1 error; aborting

+0

hai risolto? –

risposta

1

Il file XML Jmlbeans 2.6 di Maven Central contiene alcune voci di classe duplicate. Il XMLBeans JIRA ha un issue open per il problema. Fino a quando non pubblicheranno un nuovo JAR, penso che sto per decomprimere il jar, che sovrascriverà i duplicati, quindi lo riavvolgerò e lo inserirò nella mia dir di libs per ora.

1

Si prega di notare che ci sono un certo numero di problemi che potresti incontrare quando usi Apache POI su Android. Le classi duplicate in XmlBeans possono attualmente essere evitate solo reimballando il barattolo.

Attualmente ci sono due progetti che tentano di risolvere la maggior parte dei problemi per voi, entrambi re-impacchettano tutte le classi comprese eventuali dipendenze in un singolo file jar per renderlo più facile da implementare. Anche alcune ombreggiature sono fatte per evitare problemi con javax-namespace che Android non consente.

  1. https://github.com/andruhon/android5xlsx
  2. https://github.com/centic9/poi-on-android/ (mainted da me)

Il primo si basa attualmente su POI 3.12, mentre il secondo può essere ri-compilato con le versioni più recenti dei POI più facilmente.