2014-09-21 24 views
6

eklendiğinde Android yinelenen sınıf hatası apache poi excel api (xlsx) ile ilgili bir sorunum var. Ben android stüdyosu kullanıyorum ve poi lib'leri "libs" klasörlerine ekledim. Bu hata bir sebepten dolayı ortaya çıkıyor (aşağıya bakınız). Bunu nasıl çözebilirim? Sorunu nasıl belirlediğinizi açıklayabilir misiniz?Apache POI

xmlbeans-2.6.0, poi-ooxml-schemas-3.10.1-20140818, poi-ooxml-3.10.1-20140818, poi-3.10.1-20140818, log4j-1.2.13, junit-4.11, com.tr-1.6.1, commons-günlüğe kaydetme-1.1, commons-codec-1.5

Teşekkürler! (Jenerik diğer şeyler hariç) aşağıdaki gibi

Benim build.gradle

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' } }

Benim app.iml hiçbir çift girişler ya ... var ... görünüyor

Hata

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

Çözdünüz mü? –

cevap

1

Maven Central'dan xmlbeans 2.6 JAR, bazı yinelenen sınıf girişleri içeriyor. XMLBeans JIRA'nın sorun için bir issue open vardır. Yeni bir JAR yayınlayana kadar, sanırım kopyaları çözecek olan kavanozun kopyasını kaldıracağım, sonra yeniden sıkıştırıp libs dizinine koyacağım.

1

Android'de Apache POI kullanırken karşılaşabileceğiniz bazı sorunların olduğunu unutmayın. XmlBeans'deki yinelenen sınıflar, şu anda yalnızca kavanozun yeniden ambalajlanmasıyla önlenebilir.

Şu anda sorunların çoğunu çözmeye çalışan iki proje var; her ikisi de bağımlılıkları da dahil olmak üzere tüm sınıfları tek bir jar dosyasına dönüştürmeyi kolaylaştırmak için yeniden paketliyor. Ayrıca Android'in izin vermediği javax-namespace ile ilgili problemlerden kaçınmak için bazı gölgeleme yapılır. İkinci daha kolay POI yeni versiyonları ile yeniden derlenebilir ise (tarafımdan mainted)

  1. https://github.com/andruhon/android5xlsx
  2. https://github.com/centic9/poi-on-android/

ilk anda, POI 3.12 dayanır.

İlgili konular