Android App崩溃。异步可能是原因

时间:2014-02-21 03:50:14

标签: java android json

所以我正在制作Android应用。基本上它是做什么的,它是从网络提供商那里获取用户的经度和纬度。然后将其传递给使用地理编码器取回邮政编码的方法。一旦我有了邮政编码,我就向WunderGround提出请求并获得JSON预测。然后我使用GSON解析它,并获得每一天的日期,温度(F)和条件。

然而,我的应用程序一直在崩溃,我不知道为什么。 LogCat只告诉我它在'FutureTask'中。我用Google搜索并且它与线程有关,所以我假设我的Async中的某些东西已关闭。

如果有人可以查看我的代码,并就如何解决这个问题给我一些建议,我将不胜感激。

代码(不再需要)

logcat的:

02-20 22:53:38.632: I/Adreno-EGL(31953): <qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build:  (CL4169980)
02-20 22:53:38.632: I/Adreno-EGL(31953): OpenGL ES Shader Compiler Version: 17.01.10.SPL
02-20 22:53:38.632: I/Adreno-EGL(31953): Build Date: 09/26/13 Thu
02-20 22:53:38.632: I/Adreno-EGL(31953): Local Branch: 
02-20 22:53:38.632: I/Adreno-EGL(31953): Remote Branch: 
02-20 22:53:38.632: I/Adreno-EGL(31953): Local Patches: 
02-20 22:53:38.632: I/Adreno-EGL(31953): Reconstruct Branch: 
02-20 22:53:42.846: E/dalvikvm(31953): Could not find class 'com.google.gson.JsonParser', referenced from method com.example.midterm2.MainActivity$parseJSON.doInBackground
02-20 22:53:42.846: W/dalvikvm(31953): VFY: unable to resolve new-instance 738 (Lcom/google/gson/JsonParser;) in Lcom/example/midterm2/MainActivity$parseJSON;
02-20 22:53:42.886: W/dalvikvm(31953): threadid=12: thread exiting with uncaught exception (group=0x417a0898)
02-20 22:53:42.936: E/AndroidRuntime(31953): FATAL EXCEPTION: AsyncTask #1
02-20 22:53:42.936: E/AndroidRuntime(31953): java.lang.RuntimeException: An error occured while executing doInBackground()
02-20 22:53:42.936: E/AndroidRuntime(31953):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.lang.Thread.run(Thread.java:841)
02-20 22:53:42.936: E/AndroidRuntime(31953): Caused by: java.lang.NoClassDefFoundError: com.google.gson.JsonParser
02-20 22:53:42.936: E/AndroidRuntime(31953):    at com.example.midterm2.MainActivity$parseJSON.doInBackground(MainActivity.java:197)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at com.example.midterm2.MainActivity$parseJSON.doInBackground(MainActivity.java:1)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-20 22:53:42.936: E/AndroidRuntime(31953):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-20 22:53:42.936: E/AndroidRuntime(31953):    ... 4 more

1 个答案:

答案 0 :(得分:0)

根据读为

的行
Caused by: java.lang.NoClassDefFoundError: com.google.gson.JsonParser
02-20 22:53:42.936: E/AndroidRuntime(31953):    at com.example.midterm2.MainActivity$parseJSON.doInBackground(MainActivity.java:197)

您的GSON解析器库未正确打包在您的APK中。您应该仔细检查您的依赖配置。

我不确定您的项目是如何设置的,但问题是:Libraries do not get added to APK anymore after upgrade to ADT 22可能会有所帮助。