Так что я делаю приложение для Android. По существу, что он делает, он выбирает долготу и широту пользователя в сетевом провайдере. Затем он передает это методу, который использует геокодер для восстановления почтового индекса. Как только у меня есть почтовый индекс, я делаю запрос на WunderGround и возвращаю прогноз JSON. Затем я использую GSON, чтобы разобрать его, и получить каждую дату дня, температуру (F) и условия.Сбой приложения для Android. Async, вероятно, причина
ОДНАКО, мое приложение продолжает падать, и я понятия не имею, почему. LogCat сообщает мне, что он находится в «FutureTask». Я Googled, и это имеет какое-то отношение к потокам, поэтому я предполагаю, что что-то в моей 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
Опубликовать логарифм, пожалуйста. Это очень много кода, чтобы проследить вслепую. – codeMagic
Просто глядя на свой код, я не могу найти никаких проблем в вашем исполнении AsyncTask, но выполняете ли вы еще одну AsyncTask одновременно? Это может вызвать множество странных проблем ... но, как комментирует @codeMagic, добавьте свой logcat – GhostDerfel
@codeMagic. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Я немного незнакома с logcat. – SlashTag