Android - java .lang.NoClassDefFoundError: Ошибка разрешения: Lorg / slf4j / LoggerFactory; - PullRequest
0 голосов
/ 03 апреля 2020

Я уже провел некоторый поиск относительно этой ошибки времени выполнения:

java .lang.NoClassDefFoundError: Ошибка разрешения: Lorg / slf4j / LoggerFactory

и вот "libs" в моем Android проекте:

enter image description here

Как видите, slf4j- android -1.7.25 .jar там. Я также попробовал последнюю версию slf4j- android -1.7.30.jar, но проблема по-прежнему сохраняется.

В основном я пытаюсь преобразовать файл MS WORD в pdf, и вот код, который я пытаюсь найти, который я где-то нашел :

public static void docToPdf(InputStream is, String outputPath){       
    WordprocessingMLPackage wordMLPackage = null;
    try {
        wordMLPackage = WordprocessingMLPackage.load(is);
    } catch (Docx4JException e) {
        e.printStackTrace();
    }
    List sections = wordMLPackage.getDocumentModel().getSections();
    for (int i = 0; i < sections.size(); i++) {
        wordMLPackage.getDocumentModel().getSections().get(i)
                .getPageDimensions();
    }
    Mapper fontMapper = new IdentityPlusMapper();
    PhysicalFont font = PhysicalFonts.getPhysicalFonts().get(
            "Comic Sans MS");//set your desired font
    fontMapper.getFontMappings().put("Algerian", font);
    try {
        wordMLPackage.setFontMapper(fontMapper);
    } catch (Exception e) {
        e.printStackTrace();
    }
   /* PdfSettings pdfSettings = new PdfSettings();
    org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
            wordMLPackage);
    //To turn off logger
    List<Logger> loggers = Collections.<Logger> list(LogManager. getCurrentLoggers());
    loggers.add(LogManager.getRootLogger());
    for (Logger logger : loggers) {
        logger.setLevel(Level.OFF);
    }*/
    OutputStream out = null;
    try {
        out = new FileOutputStream(new File(outputPath));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    /*conversion.output(out, pdfSettings);*/
    try {
        Docx4J.toPDF(wordMLPackage, out);
    } catch (Docx4JException e) {
        e.printStackTrace();
    }
    System.out.println("DONE!!");
}

Ниже, в консоли, я вижу другое сообщение об ошибке:

Причина: java .lang.ClassNotFoundException: Не найден класс "org. slf4j.LoggerFactory "по пути: DexPathList [[zip-файл" /system/framework/org.apache.http.legacy.boot.jar ", ...

1 Ответ

0 голосов
/ 03 апреля 2020

Вам необходимо добавить slf4j-api-1.7.30.jar в папку lib. Поскольку класс org.slf4j.LoggerFactory доступен в slf4j-api.jar.

Загрузите последний файл jar из дистрибутива SLF4J .

...