Soru & Cevap

Android Studio Array - Index Hatası

30.06.2017 - 12:44

 

Arkadaşlar siteye bu sorun için üye oldum. Uygulama açılmadan kapanıyor. Sanıyorum array index ile ilgili bir durum. Hatayı paylaştım yardımcı olursanız sevinirim.

 

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

 

67 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-84564-1548924191.jpg
emrekaplan606
30.06.2017 - 01:17
while ((soru = reader.readLine()) != null) 
{
   soru = ""+soru;
}
String[] soruIcerik = soru.split(";");
String x = soruIcerik[0];
String y = soruIcerik[1];
.
.
.
.

Şeklinde yaparsan sorun çözülür. Hatta soru değişkenini şu şekilde tanımlarsan daha iyi String soru = ""; şeklinde. Kolay gelsin

Tayyip Emre ÖRNEK
30.06.2017 - 02:18
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference Hatası alıyorum bu sefer hocam
Emre Kaplan
30.06.2017 - 02:38
soru değişkenine değer gelip gelmediğine bakar mısın ?