有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

杰克森·爪哇。lang.NoSuchFieldError:使用注释

我正在使用Emoji4j——我已经在类路径中包含了下面的lib

Libraries added to the Projects

当我运行此代码时:

    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)

共 (1) 个答案

  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将丢失