2016-05-04 1 views
0

Я пытаюсь создать .xlsx документы с библиотекой Apache POI 3.14.Исключение Xml Beans 2.6 с созданием Excel на Android

Это мой Gradle конфигурации:

(...)  
defaultConfig { 
      applicationId "com.example.app" 
      minSdkVersion 14 
      targetSdkVersion 19 

      multiDexEnabled true 

     } 

     buildTypes { 
      release { 
       minifyEnabled true 
       proguardFiles getDefaultProguardFile('proguard-android.txt') 
       proguardFile 'Path/app/proguard-rules.pro' 
      } 
     } 
    } 

    dependencies { 
     compile 'com.android.support:appcompat-v7:22.2.0' 
     compile 'com.android.support:multidex:1.0.1' 
     //compile files('libs/android-support-v13.jar') 
     compile files('libs/commons-io-2.4.jar') 
     compile files('libs/commons-net-3.3.jar') 
     compile files('libs/poi-3.14-20160307.jar') 
     compile files('libs/poi-ooxml-3.14-20160307.jar') 
     compile files('libs/poi-ooxml-schemas-3.14-20160307.jar') 
     compile files('libs/xmlbeans-2.6.0.jar') 
     compile files('libs/curvesapi-1.03.jar') 
     compile files('libs/commons-codec-1.10.jar') 
     compile files('libs/commons-logging-1.2.jar') 
     compile files('libs/junit-4.12.jar') 
     compile files('libs/log4j-1.2.17.jar') 
     compile 'com.roomorama:caldroid:2.3.1' 

    } 

С оригинальной XMLBeans библиотеки xmlbeans-2.6.0.jar я получаю это исключение, когда я пытаюсь запустить APP

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/xmlbeans/xml/stream/Location.class 

Я попытался удалить дублированный класс с этот метод

-Unzip the jar file. (Simply change .jar extension to .zip 
-This will remove the duplicate files. 
-Recreate the jar using jar cf xmlbeans.jar -C (path to unzipped folder) . (Mind it, there is a dot in the end of command) 
-Use this regenerated jar 

Когда я пытаюсь запустить приложение с этим повторно скомпилирован .jar я получаю это предупреждение, но даже в этом случае он будет запущен к устройству

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class 
    Error:(org.apache.xmlbeans.impl.inst2xsd.RussianDollStrategy$1) that doesn't come with an 
    Error:associated EnclosingMethod attribute. This class was probably produced by a 
    Error:compiler that did not target the modern .class file format. The recommended 
    Error:solution is to recompile the class from source, using an up-to-date compiler 
    Error:and without specifying any "-target" type options. The consequence of ignoring 
    Error:this warning is that reflective operations on this class will incorrectly 
    Error:indicate that it is *not* an inner class. 
(...) 

Затем, когда в моем коде попытаться сделать:

XSSFWorkbook wb = new XSSFWorkbook(); 

я получаю это исключение и закрывает приложение

 Caused by: java.lang.NoClassDefFoundError: javax.xml.stream.XMLEventFactory 
    at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.<clinit>(PackagePropertiesMarshaller.java:41) 
at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:162)  
at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:142)  
at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37)  
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:67)  
at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:344)  
at org.apache.poi.xssf.usermodel.XSSFWorkbook.newPackage(XSSFWorkbook.java:453)  
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:226)  
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:218)  
at com.asde.armatest.persistency.AsyncExcelFile.doInBackground(AsyncExcelFile.java:285)  

Что было бы неправильно?

+0

Возможного дубликат [POI: дублировать запись: орг/Apache/XMLBeans/XML/Поток/BindigConfig.class] (http://stackoverflow.com/ Вопросы/36596776/poi-duplicate-entry-org-apache-xmlbeans-xml-stream-bindigconfig-class) – centic

+0

Я уже сделал все, что было сказано в этом потоке, и проблема сохраняется. – Hanzo

ответ

0

Я нашел this переупакованную версию. Это немного ограничено, но для моих нужд хорошо работать. Это для Android 4 и работает на Android 5

Благодаря

Смежные вопросы