我正在使用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
将丢失。