包含Apache POI时Android重复类错误

Dou*_*hgn 6 java apache android

我遇到了apache poi excel api(xlsx)的问题.我正在使用android studio,我已将poi libs添加到"libs"文件夹中.出于某种原因出现此错误(见下文).我该如何解决?你能解释一下你是如何确定问题的吗?

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,dom4j-1.6. 1,commons-logging-1.1,commons-codec-1.5

谢谢!

我的build.gradle看起来如下(不包括通用的其他东西)......

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

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

我的app.iml没有重复的条目......

错误

错误:类org.apache.xmlbeans.xml.stream.Location已添加到输出中.请删除重复的副本.没有以现代.class文件格式为目标的编译器.推荐的(org.apache.log4j.chainsaw.ControlPanel $ 1)没有关联的EnclosingMethod属性.这个类可能是由一个解决方案产生的,是从源代码重新编译类,使用最新的编译器1错误; 中止

cen*_*tic 5

请注意,在 Android 上使用 Apache POI 时可能会遇到许多问题。XmlBeans 中的重复类目前只能通过重新打包 jar 来避免。

目前有两个项目试图为您解决大部分问题,它们都将所有类(包括任何依赖项)重新打包到一个 jar 文件中,以便于部署。还进行了一些着色以避免出现 Android 不允许的 javax-namespace 问题。

  1. https://github.com/andruhon/android5xlsx
  2. https://github.com/centic9/poi-on-android/(由我维护)

第一个当前基于 POI 3.12,而第二个可以更轻松地使用更新版本的 POI 重新编译。


小智 1

Maven Central 的 xmlbeans 2.6 JAR 包含一些重复的类条目。XMLBeans JIRA 有一个针对该问题的问题。在他们发布新的 JAR 之前,我想我要解压缩该 jar,这将覆盖重复项,然后重新压缩它并暂时将其放入我的 libs 目录中。