Android Studio崩溃引起:java.lang.ArrayIndexOutOfBoundsException:length = 1;指数= 6

时间:2017-06-30 09:36:38

标签: java android arraylist crash indexoutofboundsexception

这是我第一次分享。请帮我。我认为问题是数组溢出,但代码中的一切都是正确的。程序未运行。关闭后崩溃。谢谢你的帮助。

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();
}

1 个答案:

答案 0 :(得分: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);
            }
}