显然我有太多的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
有解决方法吗?我不想删除任何库,但我的项目没有编译。请帮忙。
答案 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?