Java.lang.NoSuchFieldError: USE_DEFAULTS jacsonannotation

Я использую Emoji4j - я включил следующие библиотеки в путь к классам.

Java.lang.NoSuchFieldError: USE_DEFAULTS jacsonannotation

Когда я запускаю этот код:

    String message = sCurrentLine.split(",")[6];
            String[] words = message.split(" ");
            for (String s : words) {
                System.out.println(s);
                System.out.print( " Have " +EmojiUtils.isEmoji(s)+  " 
   Emojis" );
    }

Это дает мне следующую ошибку:

    Exception in thread "main" java.lang.NoSuchFieldError: USE_DEFAULTS
    at com.fasterxml.jackson.annotation.JsonInclude$Value.<clinit> 
    (JsonInclude.java:247)
    at com.fasterxml.jackson.databind.cfg.ConfigOverrides.<init> 
    (ConfigOverrides.java:55)
    at com.fasterxml.jackson.databind.ObjectMapper.<init> 
    (ObjectMapper.java:564)
    at com.fasterxml.jackson.databind.ObjectMapper.<init> 
    (ObjectMapper.java:480)
    at emoji4j.EmojiManager.<clinit>(EmojiManager.java:23)
    at emoji4j.EmojiUtils.getEmoji(EmojiUtils.java:39)
    at emoji4j.EmojiUtils.isEmoji(EmojiUtils.java:60)
    at com.isme.test.EmojiTest.main(EmojiTest.java:39)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
5 073
1

Ответы 1

Это похоже на несколько версий внутреннего класса перечисления JsonInclude.Include. Это в jackson-annotations.jar, который дважды показан в приведенном выше фрагменте пути к классам.

Просмотр предполагает, что и внутренний класс JsonInclude.Value, и JsonInclude.Include.USE_DEFAULTS были добавлены где-то между Jackson 2.5 и 2.6.

Emoji4j явно нужен внутренний класс JsonInclude.Value, который, в свою очередь, зависит от JsonInclude.Include.USE_DEFAULTS. Если загружается более старая версия JsonInclude.Include, USE_DEFAULTS будет отсутствовать.

Другие вопросы по теме