0

マグニチュード最大の地震をアプリに表示するよう依頼するプロジェクトを行っています。私が抱えている問題は、for ループがアプリをクラッシュさせていることです。for ループを取り出すと、マグニチュードが最も低い地震が表示されます。

logcat を確認しましたが、理由の手がかりが得られませんでした。そのため、私が求めているのは、これを解決する方向に私を向けるための助けが欲しいということです。

ご協力いただきありがとうございます

ここにコードがあります

private void DisplayInfo(String result){

    try{
        JSONObject jsonObject = new JSONObject(result);
        JSONArray arr = new JSONArray(jsonObject.getString("earthquakes"));

        for (int a = 0; a<arr.length(); a++){

            JSONObject element = arr.getJSONObject(a);
            //Toast.makeText(getBaseContext(), element.getString("magnitude"), Toast.LENGTH_LONG).show();
            int[] magnitude = new int[]{0};
            Arrays.sort(magnitude);
            int max = magnitude[magnitude.length - 1];

            for(int i =0; i < magnitude.length; i++){
                if(magnitude[i] > max){
                    max = magnitude[i];

                  //  Toast.makeText(getBaseContext(), element.getString("hello World") + max, Toast.LENGTH_LONG).show();

           String value;
            value = "Country Name: " + element.getString("src")
                    + ("\n") + "Date & Time: " + element.getString("datetime")
                    + ("\n") +  "Magnitude: " +  element.getString("magnitude");

            TextView text = new TextView (this);
            text.setText(value);

            setContentView(text);
            Log.d ("String Value >>>>>", value);
        }
         }
            }

    }

ボタンからの Logcat クリック

01-09 00:09:45.868: D/Button Click ok(1383): http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo
01-09 00:09:47.928: D/dalvikvm(1383): GC_FOR_ALLOC freed 203K, 13% free 2799K/3200K, paused 35ms, total 38ms
01-09 00:10:05.738: E/SoundPool(278): error loading /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.738: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.738: E/SoundPool(278): error loading /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.738: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.738: E/SoundPool(278): error loading /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.748: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.758: E/SoundPool(278): error loading /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.758: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.758: E/SoundPool(278): error loading /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.768: D/Button Click ok(1383): http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo
01-09 00:10:05.778: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
01-09 00:10:05.778: E/SoundPool(278): error loading /system/media/audio/ui/KeypressStandard.ogg
01-09 00:10:05.778: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/KeypressStandard.ogg
01-09 00:10:05.778: E/SoundPool(278): error loading /system/media/audio/ui/KeypressSpacebar.ogg
01-09 00:10:05.808: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/KeypressSpacebar.ogg
01-09 00:10:05.808: E/SoundPool(278): error loading /system/media/audio/ui/KeypressDelete.ogg
01-09 00:10:05.808: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/KeypressDelete.ogg
01-09 00:10:05.808: E/SoundPool(278): error loading /system/media/audio/ui/KeypressReturn.ogg
01-09 00:10:05.838: W/AudioService(278): Soundpool could not load file: /system/media/audio/ui/KeypressReturn.ogg
01-09 00:10:05.848: W/AudioService(278): onLoadSoundEffects(), Error -1 while loading samples

4

1 に答える 1

0

たぶん、クラッシュ情報を貼り付ける必要があります。
例外をキャッチした場合は、例外情報を確認する必要があります。または、すべてのコードを含めずに、JSON 用に try catch ブロックを追加してください。
最後に、ブレークポイントを追加して、コードを段階的にデバッグできます。キャスト型と element.getString(is null?) に気付くはずです。

于 2016-01-09T05:03:53.887 に答える