Я использую Emoji4j - я включил следующие библиотеки в путь к классам.
Когда я запускаю этот код:
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)




Это похоже на несколько версий внутреннего класса перечисления 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 будет отсутствовать.