当前位置: 首页 > 知识库问答 >
问题:

Jackson/JSON:调用新的ObjectMapper()时出现ExceptionInInitializerError错误

梅安平
2023-03-14

我在Android应用程序中使用Jackson。我有一个用于传入调用的BroadcastReceiver,它保存了整个调用的信息,然后将其保存到JSON数组中的JSON对象中。

然后,我得到下面的异常,它指向我调用< code > object mapper mapper = new object mapper()的那一行。我不知道该怎么办,因为我没有写那些类。救命?

09-04 09:08:58.220: E/AndroidRuntime(4445): FATAL EXCEPTION: main
09-04 09:08:58.220: E/AndroidRuntime(4445): java.lang.ExceptionInInitializerError
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.ourcompany.appname.IncomingCallDetector.saveLog(IncomingCallDetector.java:80)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.ourcompany.appname.IncomingCallDetector.onReceive(IncomingCallDetector.java:70)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2816)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.app.ActivityThread.access$3200(ActivityThread.java:126)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2088)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.os.Looper.loop(Looper.java:123)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at android.app.ActivityThread.main(ActivityThread.java:4633)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at java.lang.reflect.Method.invokeNative(Native Method)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at java.lang.reflect.Method.invoke(Method.java:521)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-04 09:08:58.220: E/AndroidRuntime(4445):     at dalvik.system.NativeStart.main(Native Method)
09-04 09:08:58.220: E/AndroidRuntime(4445): Caused by: java.lang.ExceptionInInitializerError
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:197)
09-04 09:08:58.220: E/AndroidRuntime(4445):     ... 13 more
09-04 09:08:58.220: E/AndroidRuntime(4445): Caused by: java.lang.NoClassDefFoundError: com.fasterxml.jackson.annotation.JsonAutoDetect
09-04 09:08:58.220: E/AndroidRuntime(4445):     at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit>(VisibilityChecker.java:169)
09-04 09:08:58.220: E/AndroidRuntime(4445):     ... 14 more

我的广播接收器在这里:http://pastie.org/4661134

共有1个答案

淳于典
2023-03-14

似乎发生的事情是,Json自动检测没有添加到您的项目中。确保它包含在apk中(如果您使用的是日食,请参阅日食中的类路径部分)

 类似资料:
  • 当尝试将json字符串转换为对象时,我看到下面列出的错误。我没有Data类的源代码&它是一个jar文件的一部分。有什么办法可以让我用混合剂来解决这个问题吗? 代码 数据类(我无法对此文件进行更改) 当我运行此操作时,我看到以下错误: com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串值“16:15:00”构造javax.

  • 我们在下面的框架中编写了一些Spark/Scala单元测试用例:-https://github.com/holdenk/spark-testing-base

  • JSON设置(my-file.JSON): 任何想法,我可以如何配置这将是赞赏的。作为一个临时解决办法,我使用了Gson库,它可以很好地解析这个文件。 虽然这是可行的,但我更喜欢Jackson,因为我们在堆栈中的任何其他地方都使用它(并不反对Gson,只是现在不想将它添加为依赖项)。

  • 问题内容: 我正在使用 ObjectMapper 进行java-json映射。 这是我的java类: 这就是我得到的: 所以我现在的问题是,如何获得此json输出: 我想要它与我的Java声明中的顺序相同。有没有办法指定它?也许带有注释或类似的东西? 问题答案:

  • 我正在使用ObjectMapper进行java-json映射。 这是我的java类: 这就是我得到的: 我希望它的顺序与java声明中的顺序相同。有办法指定吗?也许有注释之类的东西?

  • 主要内容:1 ObjectMapper类的构造方法,2 ObjectMapper类的示例ObjectMapper是Jackson库的核心类。ObjectMapper提供用于在基本POJO(Java对象)之间或从通用JSON树模型(JsonNode)之间读取和写入JSON的功能,以及用于执行转换的相关功能。它也可以高度自定义,使用不同样式的JSON输出,并支持更高级的Object概念,例如多态。ObjectMapper还充当更高级ObjectReader和ObjectWriter类的工