2013-03-20 2 views
0

Я извлекаю информацию из источника json из сети внутри службы android внутри цикла таймера. несколько раз, около 5% от времени я получаю эту ошибку:синтаксический анализ json внутри asyntask в android

03-20 09:27:06.901: E/AndroidRuntime(401): FATAL EXCEPTION: main 
03-20 09:27:06.901: E/AndroidRuntime(401): java.lang.NullPointerException 
03-20 09:27:06.901: E/AndroidRuntime(401): at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112) 
03-20 09:27:06.901: E/AndroidRuntime(401): at org.json.JSONTokener.nextValue(JSONTokener.java:90) 
03-20 09:27:06.901: E/AndroidRuntime(401): at org.json.JSONObject.<init>(JSONObject.java:154) 
03-20 09:27:06.901: E/AndroidRuntime(401): at org.json.JSONObject.<init>(JSONObject.java:171) 
03-20 09:27:06.901: E/AndroidRuntime(401): at Dic.proj.pkg.notifService.parse_if_update(notifService.java:182) 
03-20 09:27:06.901: E/AndroidRuntime(401): at Dic.proj.pkg.notifService$1$1$1.onPostExecute(notifService.java:151) 
03-20 09:27:06.901: E/AndroidRuntime(401): at Dic.proj.pkg.notifService$1$1$1.onPostExecute(notifService.java:1) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.os.AsyncTask.finish(AsyncTask.java:417) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.os.Looper.loop(Looper.java:123) 
03-20 09:27:06.901: E/AndroidRuntime(401): at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-20 09:27:06.901: E/AndroidRuntime(401): at java.lang.reflect.Method.invokeNative(Native Method) 
03-20 09:27:06.901: E/AndroidRuntime(401): at java.lang.reflect.Method.invoke(Method.java:521) 
03-20 09:27:06.901: E/AndroidRuntime(401): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-20 09:27:06.901: E/AndroidRuntime(401): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-20 09:27:06.901: E/AndroidRuntime(401): at dalvik.system.NativeStart.main(Native Method) 

я пользователь RestClient libraryfot разбора JSON. и это мой parse_if_update Asyntask:

public static String parse_if_update(String jsonResponse) { 
    String update = ""; 
    try { 
     JSONObject json = new JSONObject(jsonResponse); 
     update = json.getString("update"); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return update; 
} 

что не так с этим? я думаю, что это связано с моей asyntask, потому что мой asyntask работает в несколько раз, иногда ...

+0

Что такое код в этой строке: 'notifService.java: 182'? –

ответ

1

The NullPointerException брошено в JSONTokener, что заставляет меня думать, что ваш jsonResponse объект null. Добавьте чек для этого, и все должно быть в порядке:

if (jsonResponse != null) { 
    JSONObject json = new JSONObject(jsonResponse); 
    update = json.getString("update"); 
} 

else 
    update = "response was null!"; 
+0

Я делаю это, но все-таки я получаю эту ошибку – Fcoder

+0

, чтобы предоставить весь файл notifService.java и новое исключение с номером строки, и я посмотрю. Вы можете использовать http://paste.ubuntu.com – Shade

Смежные вопросы