2016-08-21 17 views
-3

JSONObject 'FirstItemMGNAME2'がnullであることを確認しようとしていますが、nullの場合はプログラムがクラッシュし、単にelseステートメントを表示します。短い、イムはちょうどJSONObject内の文字列exsitsかどうかを確認し、アプリが尋ねた人としてJSONObjectがnullかどうかをチェックして、アプリケーションをクラッシュさせます。

08-21 16:14:40.237 20945-20945/com.kripzy.lolbuilds E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.kripzy.lolbuilds, PID: 20945 
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference 
    at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:337) 
    at android.widget.ListView.setAdapter(ListView.java:491) 
    at com.kripzy.lolbuilds.Aatrox$JSONTask.onPostExecute(Aatrox.java:447) 
    at com.kripzy.lolbuilds.Aatrox$JSONTask.onPostExecute(Aatrox.java:67) 
    at android.os.AsyncTask.finish(AsyncTask.java:651) 
    at android.os.AsyncTask.-wrap1(AsyncTask.java) 
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

をクラッシュしたときの文ここ

JSONObject FirstItemMGNAME2 = FirstItemArrayMG.getJSONObject(FirstItemArrayMG.length() - 2); 
if (FirstItemMGNAME2.isNull("name")){ 
    FirstItemIDMGNAME2 = "1"; 
} 
else { 
    FirstItemIDMGNAME2 = FirstItemMGNAME2.getString("name"); 
} 

がlogcatであれば作成しようとして

私のコードはすべてここに - http://pastebin.com/JYsinqRw(ボディは30,000文字に制限されていたために貼り付けが必要でした)

+0

NPEにはまだヌルオブジェクトにアクセスしようとしています。 – Shaishav

+0

@Shaishavどうすればいいですか? – Kripzy

+0

エラーのlogcatメッセージは何ですか? –

答えて

0

お試しoptJSONObjet(String arg1)フィールドがない場合はnullを返します。 getJSONObjectnullの代わりにJSONExceptionを返します。

または

FirstItemMGNAME2はこれが解決しない場合はnull

+0

は、optJSONObject(String agr1)の詳細をよく定義しています。 –

+2

JSONObject optJSONObject(String name) 存在する場合は名前でマッピングされた値を返し、そうでない場合はnullを返します。 https://developer.android.com/reference/org/json/JSONObject.html – iroiroys

+0

ですが、isNull(key)checkとoptString()については –

0

はない

if (FirstItemMGNAME2.getString("name").equals("")){ 
      FirstItemIDMGNAME2 = "1" 
      } 
      else { 
      FirstItemIDMGNAME2 = FirstItemMGNAME2.getString("name"); 
      } 

のようなJSONオブジェクトをJSON文字列と比較してみplzはあなたのJSONの構造を送るかもしれ

0

で固定try catchブロック内に置くだけです。 -

try { 

JSONObject FirstItemMGNAME3 = FirstItemArrayMG.getJSONObject(FirstItemArrayMG.length() - 3); 
        if (FirstItemMGNAME3.isNull("name")){ 
         FirstItemIDMGNAME3 = "1"; 
        } 
        else { 
         FirstItemIDMGNAME3 = FirstItemMGNAME3.getString("name"); 
        } 
} catch (JSONException c) { 
    c.printStackTrace();} 
関連する問題