I'm using Jackson in my Android app. I have a BroadcastReceiver
for incoming calls that saves information about the entire call, then I save it to a JSON object in a JSON array.
Then, I get the exception below which points to the line where I call ObjectMapper mapper = new ObjectMapper()
. I don't know what to do since I did not write those classes. Help?
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
My broadcast receiver is here: http://pastie.org/4661134
What seems to happen is that JsonAutoDetect is not added to your project. Make sure it is included in the apk (see classpath part in eclipse if you are using eclipse)