2010-11-27 8 views
0

Ich habe den folgenden Code, aber manchmal habe ich die folgende Ausnahme, die nicht eingefangen wird .. Was ist der Grund und die Lösung?Warum JSON Exception nicht in Android zwischengespeichert wird?

12-02 12:03:29.101: ERROR/AndroidRuntime(348): FATAL EXCEPTION: main 
12-02 12:03:29.101: ERROR/AndroidRuntime(348): java.lang.RuntimeException: Unable to start activity ComponentInfo{ayanoo.forms/ayanoo.forms.FriendsActivity}: java.lang.NullPointerException 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.os.Looper.loop(Looper.java:123) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at dalvik.system.NativeStart.main(Native Method) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348): Caused by: java.lang.NullPointerException 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at org.json.JSONTokener.nextValue(JSONTokener.java:90) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at org.json.JSONObject.<init>(JSONObject.java:154) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at org.json.JSONObject.<init>(JSONObject.java:171) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at ayanoo.forms.FriendsActivity.displayFriends(FriendsActivity.java:79) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at ayanoo.forms.FriendsActivity.onCreate(FriendsActivity.java:36) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
12-02 12:03:29.101: ERROR/AndroidRuntime(348):  ... 11 more 





try { 
      // String searchText = (String) getIntent().getExtras().get("searchTextValue"); 
      JSONObject jsonObject = new JSONObject(Friend.getFriends(1)); 
      if(jsonObject!=null) 
        { 
       JSONArray resultsData = jsonObject.getJSONArray("GetFriendsResult"); 
       for (int userIndex = 0; userIndex < resultsData.length(); userIndex++) { 
        if (friendsResulted == null) { 
         friendsResulted = new ArrayList<FriendResulted>(resultsData.length()); 
        } 
        String[] userArrayData = resultsData.getString(userIndex).split("--!!--"); 
        FriendResulted frindAccountResulted = new FriendResulted(); 

        frindAccountResulted.setFriendId(Integer.parseInt(userArrayData[0])); 
        frindAccountResulted.setUsername(userArrayData[1]); 
        frindAccountResulted.setImagePath(userArrayData[2]); 
        friendsResulted.add(frindAccountResulted); 
        addFriend(frindAccountResulted); 
        counter ++; 
        if(counter>9)break; 
       } 


       } 
      } 

     catch (JSONException e) { 
       Toast.makeText(this,"Please try again, "+e.getMessage() , Toast.LENGTH_SHORT).show(); 
       } 

Antwort

5

Es ist ein NullPointerException, kein JSONEcxeption. Ich denke, dass es durch diese Linie verursacht wird:

JSONObject jsonObject = new JSONObject(Friend.getFriends(1)); 

Es scheint wie Friend.getFriends(1) kehrt null. Das musst du ändern.

Verwandte Themen