Как устранить ошибку java.lang.VerifyError: org / apache / poi / xssf / usermodel / XSSFWorkbook?

Я пытаюсь прочитать файл xlsx из папки ресурсов. Я получил исключение ниже,

05-16 10: 12: 05.613: E / AndroidRuntime (2915): FATAL EXCEPTION: main 05-16 10: 12: 05.613: E / AndroidRuntime (2915): java.lang.VerifyError: org / apache / poi / xssf / usermodel / XSSFWorkbook

до этого исключения я также получал несколько предупреждений, например,

  • # P4 #
  • # P5 #

Я добавил библиотеку poi 3.12 в свое приложение, снимок экрана библиотеки, как показано ниже,

введите описание изображения здесь

И я проверил файлы jar poi-3.12 и poi-ooxml-3.12 в разделе «Порядок и экспорт», снимок экрана, как показано ниже,

введите описание изображения здесь

Я использовал код ниже,

        InputStream is = context.getAssets().open("sample.xlsx"));
        XSSFWorkbook workbook = new XSSFWorkbook(is);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Cell cell = sheet.getRow(0).getCell(0);
        String value = cell.getStringCellValue() + "";

Я хочу читать и записывать файлы .XLSX и .XLS. Как решить эту проблему?

Заранее спасибо.


person bharath    schedule 16.05.2015    source источник
comment
у вас есть возможность проверить разворачиваемость для андроида? Просто чтобы проверить наличие необходимых банок?   -  person Olimpiu POP    schedule 21.05.2015
comment
@OlimpiuPOP Отдельных jar-файлов для разработки под Android не существует.   -  person bharath    schedule 21.05.2015
comment
перейдите в свой bin-файл и удалите там файлы, повторно добавьте в путь сборки, очистите и перестройте. может это может помочь   -  person Elltz    schedule 21.05.2015
comment
где ошибка? Телефон или эмулятор? Или оба?   -  person Olimpiu POP    schedule 22.05.2015
comment
@OlimpiuPOP И эмулятор, и телефон.   -  person bharath    schedule 22.05.2015
comment
@bharath вы нашли какое-нибудь решение для xlsx?   -  person Meenaxi    schedule 23.10.2015
comment
@Meenaxi Я много способов перепробовал. Но решений не нашел. Я использую файл .xls для своего приложения.   -  person bharath    schedule 27.10.2015
comment
@bharath, я нашел решение, см. пример здесь github.com/andruhon/AndroidReadXLSX. Просто нужно добавить эти 2 файла jar aa-poi-3.10-min-0.1.5.jar и aa-poi-ooxml-schemas-3.10-Reduced-more-0.1.5.jar   -  person Meenaxi    schedule 27.10.2015


Ответы (2)


Сначала вы должны подключить к своему проекту эти jar-файлы.

нужные вам банки

Затем используйте этот код для чтения

public static void readXLSXFile() throws IOException
    {
        InputStream ExcelFileToRead = new FileInputStream("C:/Test.xlsx");
        XSSFWorkbook  wb = new XSSFWorkbook(ExcelFileToRead);

        XSSFWorkbook test = new XSSFWorkbook(); 

        XSSFSheet sheet = wb.getSheetAt(0);
        XSSFRow row; 
        XSSFCell cell;

        Iterator rows = sheet.rowIterator();

        while (rows.hasNext())
        {
            row=(XSSFRow) rows.next();
            Iterator cells = row.cellIterator();
            while (cells.hasNext())
            {
                cell=(XSSFCell) cells.next();

                if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING)
                {
                    System.out.print(cell.getStringCellValue()+" ");
                }
                else if(cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
                {
                    System.out.print(cell.getNumericCellValue()+" ");
                }
                else
                {
                    //U Can Handel Boolean, Formula, Errors
                }
            }
            System.out.println();
        }

    }
person sinitram    schedule 16.05.2015
comment
Я уже добавил эти файлы jar в библиотеки сборки проекта. - person bharath; 16.05.2015
comment
Подскажите пожалуйста свой иде? - person sinitram; 16.05.2015
comment
Я использую eclipse IDE. - person bharath; 16.05.2015
comment
Итак, попробуйте удалить все библиотеки, а затем снова подключить только эти 4 баночки. Может у вас есть дублирование. - person sinitram; 16.05.2015
comment
Если это не сработает, скачайте эти 2 баночки и попробуйте с ними. github.com/andruhon/AndroidReadXLSX/tree/master/libs - person sinitram; 16.05.2015
comment
Да, я много раз пробовал. Но бесполезно. AndroidReadXLSX предназначен только для чтения файла XLSX. Мы не можем записать файл XLSX. - person bharath; 16.05.2015
comment
У меня тоже было много проблем, когда я работал с этой библиотекой, но мне нужно было просто прочитать файл. Знаю, что эти библиотеки отлично работают на java (не на android). Вам следует изменить файлы jar и удалить из библиотек классы, которые вы не используете. - person sinitram; 16.05.2015
comment
Также вы можете просто написать сервер на java (без android) и производить там свою обработку. - person sinitram; 16.05.2015
comment
Приведенный выше код отлично работает в приложении Java. Но тот же код не работает в Android. - person bharath; 16.05.2015
comment
Да, я знаю. Мой научный руководитель сказал мне, что с этой библиотекой невозможно работать в android, она также некорректно работает с appcompat. Лучший способ - написать сервер. - person sinitram; 16.05.2015

Обновлен код, чтобы можно было читать и записывать файлы .XLSX и .XLS.

InputStream is = context.getAssets().open("sample.xlsx"));
Workbook workbook = WorkbookFactory.create(is);
Sheet sheet = workbook.getSheetAt(0);
Cell cell = sheet.getRow(0).getCell(0);
String value = cell.getStringCellValue() + "";

Информацию о ваших библиотеках можно найти здесь android получение ошибки проверки java lang при использовании внешней библиотеки java

person jjcosare    schedule 22.05.2015