首页 文章

包含Apache POI时Android重复类错误

提问于
浏览
6

我遇到了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看起来如下(不包括通用的其他东西)......

dependencies {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错误;中止

2 回答

  • 2

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

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

    第一个目前基于POI 3.12,而第二个可以更容易地使用较新版本的POI重新编译 .

  • 1

    来自Maven Central的xmlbeans 2.6 JAR包含一些重复的类条目 . XMLBeans JIRA有一个issue open问题 . 在他们发布一个新的JAR之前,我想我将解压缩jar,它将覆盖重复项,然后将其重新压缩并将其放入我的libs目录中 .

相关问题