2013-08-18 2 views
2

По-видимому, у меня слишком много баров apache poi, которые возвращают слишком много методов и выше предела, когда я пытаюсь читать и писать файл xlsx. Ниже приведена ошибка. Я получаюСлишком много методов error

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 

Есть ли способ обойти это? Я не хочу удалять библиотеки, но мой проект не компилируется. Пожалуйста помоги.

ответ

1

Обнаружили проблему!

Это несовместимость XSSF от Apache POI с Android! На самом деле Apache довольно хорошо, но когда Android преобразует ваш Java-код в исполняемые файлы Dalvik, у него есть предел метода 65536, который превосходит библиотеки Apache POI при обработке XSSF. Отсюда и ошибка. Это не имеет никакого отношения к линиям. :) У меня было всего 75 строк и 7 столбцов. Более подробную информацию об этом можно найти на странице http://mail-archives.apache.org/mod_mbox/poi-dev/201110.mbox/%[email protected].com%3E.

0

короткий ответ:

просто удалить ненужные файлы банку. например из списка, который вы указали, я видел, что есть методы «8767» от org.openxmlformats.schemas.drawingml.x2006.main, если нет необходимости, просто удалите этот файл jar, и вам будет проще.

Подробный ответ:

На официальном титановый Jira, эта ошибка все еще "открыт", создано 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?