java.lang.NoSuchFieldError:使用注释
我正在使用Emoji4j——我已经在类路径中包含了下面的lib 当我运行此代码时:java.lang.NoSuchFieldError:使用注释,java,jackson,annotations,Java,Jackson,Annotations,我正在使用Emoji4j——我已经在类路径中包含了下面的lib 当我运行此代码时: String message = sCurrentLine.split(",")[6]; String[] words = message.split(" "); for (String s : words) { System.out.println(s); System.out.print(
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)
线程“main”java.lang.NoSuchFieldError中的异常:使用默认值
位于com.fasterxml.jackson.annotation.JsonInclude$Value。
(JsonInclude.java:247)
在com.fasterxml.jackson.databind.cfg.ConfigOverrides上。
(ConfigOverrides.java:55)
位于com.fasterxml.jackson.databind.ObjectMapper。
(ObjectMapper.java:564)
位于com.fasterxml.jackson.databind.ObjectMapper。
(ObjectMapper.java:480)
在emoji4j.EmojiManager.(EmojiManager.java:23)
在emoji4j.EmojiUtils.getEmoji(EmojiUtils.java:39)
在emoji4j.EmojiUtils.isEmoji(EmojiUtils.java:60)
位于com.isme.test.EmojiTest.main(EmojiTest.java:39)
听起来像是
JsonInclude.Include的多个版本。这在jacksonannotations.jar
中,它在上面的类路径摘录中显示了两次
浏览一下就会发现JsonInclude.Value
内部类和JsonInclude.Include.USE\u DEFAULTS
都是在Jackson 2.5和2.6之间添加的
Emoji4j显然需要JsonInclude.Value
内部类,而内部类又取决于JsonInclude.Include.USE\u默认值
。如果正在加载较旧版本的JsonInclude.Include
,则将缺少USE\u DEFAULTS