2012-09-04 51 views
1

我在我的Android應用程序中使用Jackson。我有一個BroadcastReceiver用於保存有關整個調用信息的傳入呼叫,然後將它保存到JSON數組中的JSON對象。Jackson/JSON:ExceptionInInitializerError調用新的ObjectMapper()

然後,我得到以下例外的例外,我撥打電話ObjectMapper mapper = new ObjectMapper()。我不知道該怎麼做,因爲我沒有寫這些類。幫幫我?

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

回答

5

有什麼事發生的是JsonAutoDetect不添加到您的項目。確保它包含在apk中(如果使用eclipse,請參閱eclipse中的classpath部分)

+0

我實際上只有jackson-core的.jar文件和數據綁定的文件。我知道還有一個。你的意思是我應該包括這個嗎? –

+0

是的。你需要傑克遜註釋。看到這個問題http://stackoverflow.com/questions/10094300/webapp-noclassdeffound-jsonautodetect – njzk2

+0

真棒,謝謝。我只需要再等9分鐘就可以選擇你的答案。 –