2014-02-21 35 views
0

所以我正在制作一个Android应用程序。本质上它是做什么的,它是否提取用户的网络提供商的经度和纬度。然后将其传递给使用地理编码器取回邮政编码的方法。一旦我有了邮政编码,我向WunderGround发出了一个请求,并且获得了一个JSON预测。然后我使用GSON解析它,并获得每一天的日期,温度(F)和条件。Android应用崩溃。异步可能原因

然而,我的应用程序不断崩溃,我不知道为什么。 LogCat只告诉我它在'FutureTask'中。我谷歌搜索,它与线程有关,所以我假设在我的异步中的东西关闭。

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

CODE省略(不再需要)

的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 
+2

请寄出logcat。这是一大堆盲目筛选的代码。 – codeMagic

+0

只看你的代码,我在你的AsyncTask执行中找不到任何问题,但你是否同时执行另一个AsyncTask?这可能会导致很多奇怪的问题......但作为@codeMagic评论,请添加您的logcat – GhostDerfel

+0

@codeMagic发布。请让我知道是否有任何更多的信息,你需要。我有点不熟悉logcat。 – SlashTag

回答

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可能会有所帮助。