方法错误太多

时间:2013-08-18 12:12:24

标签: android excel apache-poi dalvik

显然我有太多的apache poi jar,当我尝试读取和写入xlsx文件时,它会返回太多的方法并超出限制。以下是我得到的错误

trouble writing output: Too many methods: 66024; max is 65536. By package:
    13 java.lang
     1 java.lang.reflect
     5 java.util
     1 javax.xml.namespace
    66 org.apache.xmlbeans
    19 org.apache.xmlbeans.impl.values
     1 org.apache.xmlbeans.impl.xb.xmlschema
  2500 org.openxmlformats.schemas.drawingml.x2006.chart
  1430 org.openxmlformats.schemas.drawingml.x2006.chart.impl
  8767 org.openxmlformats.schemas.drawingml.x2006.main
  5258 org.openxmlformats.schemas.drawingml.x2006.main.impl
    86 org.openxmlformats.schemas.drawingml.x2006.picture
    33 org.openxmlformats.schemas.drawingml.x2006.picture.impl

有解决方法吗?我不想删除任何库,但我的项目没有编译。请帮忙。

2 个答案:

答案 0 :(得分:1)

发现了问题!

这是Apache POI与Android的XSSF不兼容!实际上Apache非常好,但是当Android将您的Java代码转换为Dalvik可执行文件时,它的方法限制为65536,Apache POI的库在处理XSSF时超出了这个限制。因此错误。它与线条无关。 :)我只有75行和7列。有关这方面的更多信息,请访问http://mail-archives.apache.org/mod_mbox/poi-dev/201110.mbox/%3CCA+JOeWNWinmNmEtHs5VK+KEc_6BzAG_=LfpdXqsDsnjJKR2X7Q@mail.gmail.com%3E

答案 1 :(得分:0)

简短回答:

只需删除不必要的jar文件即可。例如从你给出的列表中,我看到来自org.openxmlformats.schemas.drawingml.x2006.main的'8767'方法,如果没有必要,只需删除这个jar文件,你就会更轻松。

详细答案:

在钛官方Jira上,这个bug仍在“重新开放”,创建于1年前。我认为他们明天不会发布新版本。 (https://jira.appcelerator.org/browse/TIMOB-18082

删除不必要的jar文件会导致运行时错误,但是,由于它们是不必要的,没有它们就不会发生运行时错误。

阅读评论,也可参考此处:ADT: fail to build when there are too many packages and classes

在这里:Can we create multi dex support builds in Titanium android?