2017-06-30 21 views
-1

これは私の最初の共有です。私を助けてください。私は問題は配列オーバーフローだと思うが、すべてがコード内にある。プログラムは実行されません。終了後にクラッシュします。助けてくれてありがとう。Androidスタジオクラッシュの原因:java.lang.ArrayIndexOutOfBoundsException:length = 1; index = 6

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=6               
at com.teornek.ehliyetsinavi.MainActivity.soruDosyasiOku(MainActivity.java:71)                    at com.teornek.ehliyetsinavi.MainActivity.onCreate(MainActivity.java:53) 

これがクラッシュした方法である:

private void soruDosyasiOku() { 
    InputStream stream = getResources().openRawResource(R.raw.ehliyet); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream, Charset.forName("UTF-16"))); 

    Soru yeniSoru; 
    String soru = null; 
    sorular = new ArrayList<Soru>(); 

    try { 
     while ((soru = reader.readLine()) != null) { 
      String [] soruIcerik; 
      soruIcerik = soru.split(";"); 
      String konu = soruIcerik[0]; 
      String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)** 

      if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) && 
        (dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) { 
       yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2], 
         soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]); 
       sorular.add(yeniSoru); 
      } 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    soru = (TextView) findViewById(R.id.soru); 
    soru.setEnabled(false); 
    cevap1 = (Button) findViewById(R.id.cevap1); 
    cevap2 = (Button) findViewById(R.id.cevap2); 
    cevap3 = (Button) findViewById(R.id.cevap3); 
    cevap4 = (Button) findViewById(R.id.cevap4); 

    Button konular = (Button) findViewById(R.id.konular); 
    Button sinaviBaslat = (Button) findViewById(R.id.sinaviBaslat); 

    cevap1.setOnClickListener(cevapTikla); 
    cevap2.setOnClickListener(cevapTikla); 
    cevap3.setOnClickListener(cevapTikla); 
    cevap4.setOnClickListener(cevapTikla); 

    konular.setOnClickListener(konularTikla); 
    sinaviBaslat.setOnClickListener(sinaviBaslatTikla); 
    soruDosyasiOku(); **//THIS IS (MainActivity.java:53)** 
    tercihleriOku(); 
    sinaviBaslat(); 
} 
+0

'' soru –

+0

soruのOPが何であるかは、英語で質問を意味します。 –

答えて

0
soruIcerik = soru.split(";"); 
if (soruIcerik.length == 7) { 
    String konu = soruIcerik[0]; 
    String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)** 

    if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) && 
        (dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) { 
       yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2], 
         soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]); 
       sorular.add(yeniSoru); 
      } 
} 
+0

原因:java.lang.NullPointerException:NULLオブジェクト参照で仮想メソッド 'java.lang.String [] java.lang.String.split(java.lang.String)'を呼び出そうとしました –

+0

show full stack trace –

関連する問題