【发布时间】:2015-11-19 14:14:06
【问题描述】:
我一直在使用 jackson 解析器进行字符串到 json 的转换以及将字符串 json 转换为对象。这在以前的项目中正常工作。它仍然在我的工作区中。现在我已经创建了一个新项目并添加了必要的 jar 文件。尝试创建 ObjectMapper 对象时出现此错误
ObjectMapper mapper = new ObjectMapper();
这是我的日志:
11-19 22:03:21.106: E/AndroidRuntime(28585): FATAL EXCEPTION: Thread-2896
11-19 22:03:21.106: E/AndroidRuntime(28585): Process: DevCity.Valkyrie.Ca.CxPtl.Android, PID: 28585
11-19 22:03:21.106: E/AndroidRuntime(28585): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/fasterxml/jackson/databind/ObjectMapper;
11-19 22:03:21.106: E/AndroidRuntime(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Helpers.JsonHelper.convertObjectToJsonString(JsonHelper.java:12)
11-19 22:03:21.106: E/AndroidRuntime(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Helpers.ApiHelper.send(ApiHelper.java:119)
11-19 22:03:21.106: E/AndroidRuntime(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Login.verifyCredentials(Login.java:178)
11-19 22:03:21.106: E/AndroidRuntime(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Login$1.run(Login.java:136)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.Thread.run(Thread.java:818)
11-19 22:03:21.106: E/AndroidRuntime(28585): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.fasterxml.jackson.databind.ObjectMapper" on path: DexPathList[[zip file "/data/app/DevCity.Valkyrie.Ca.CxPtl.Android-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
11-19 22:03:21.106: E/AndroidRuntime(28585): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
11-19 22:03:21.106: E/AndroidRuntime(28585): ... 5 more
11-19 22:03:21.106: E/AndroidRuntime(28585): Suppressed: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.Class.classForName(Native Method)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
11-19 22:03:21.106: E/AndroidRuntime(28585): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
11-19 22:03:21.106: E/AndroidRuntime(28585): ... 6 more
11-19 22:03:21.106: E/AndroidRuntime(28585): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
11-19 22:03:21.258: I/Timeline(28585): Timeline: Activity_idle id: android.os.BinderProxy@42725d9 time:30155856
11-19 22:03:21.631: E/WindowManager(28585): android.view.WindowLeaked: Activity DevCity.Valkyrie.Ca.CxPtl.Android.Login has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{2772d509 V.E..... R......D 0,0-578,345} that was originally added here
11-19 22:03:21.631: E/WindowManager(28585): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:367)
11-19 22:03:21.631: E/WindowManager(28585): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
11-19 22:03:21.631: E/WindowManager(28585): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
11-19 22:03:21.631: E/WindowManager(28585): at android.app.Dialog.show(Dialog.java:306)
11-19 22:03:21.631: E/WindowManager(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Login.processCredentials(Login.java:129)
11-19 22:03:21.631: E/WindowManager(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Login.verifyFields(Login.java:116)
11-19 22:03:21.631: E/WindowManager(28585): at DevCity.Valkyrie.Ca.CxPtl.Android.Login.logMeIn(Login.java:86)
11-19 22:03:21.631: E/WindowManager(28585): at java.lang.reflect.Method.invoke(Native Method)
11-19 22:03:21.631: E/WindowManager(28585): at java.lang.reflect.Method.invoke(Method.java:372)
11-19 22:03:21.631: E/WindowManager(28585): at android.view.View$1.onClick(View.java:4091)
11-19 22:03:21.631: E/WindowManager(28585): at android.view.View.performClick(View.java:4856)
11-19 22:03:21.631: E/WindowManager(28585): at android.view.View$PerformClick.run(View.java:19956)
11-19 22:03:21.631: E/WindowManager(28585): at android.os.Handler.handleCallback(Handler.java:739)
11-19 22:03:21.631: E/WindowManager(28585): at android.os.Handler.dispatchMessage(Handler.java:95)
11-19 22:03:21.631: E/WindowManager(28585): at android.os.Looper.loop(Looper.java:211)
11-19 22:03:21.631: E/WindowManager(28585): at android.app.ActivityThread.main(ActivityThread.java:5373)
11-19 22:03:21.631: E/WindowManager(28585): at java.lang.reflect.Method.invoke(Native Method)
11-19 22:03:21.631: E/WindowManager(28585): at java.lang.reflect.Method.invoke(Method.java:372)
11-19 22:03:21.631: E/WindowManager(28585): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
11-19 22:03:21.631: E/WindowManager(28585): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
我真的不知道为什么。这是一个不同的项目。
这是我的包资源管理器的截图供参考
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
Class not found 异常通常是 pom 或清单文件中缺少导入。我建议你检查你的清单文件,看看是否有导入,它是否指向正确的对象映射器。
-
您是否与我的应用程序清单文件有关?我似乎无法在那里找到我的进口商品。进口货物应该显示在我的清单上吗?
-
@ljpv14 不,当然。在项目属性 -> Java 构建路径中,在 Order and Export 选项卡中添加您的库。
-
哦。我的错。是的,它在那里并且已经被检查过。