java.lang.NoSuchFieldError: USE_DEFAULTS jacsonannotation

Muh*_*hid 2 java annotations jackson

我正在使用 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" );
    }
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

    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)
Run Code Online (Sandbox Code Playgroud)

df7*_*899 5

这听起来像是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将丢失。