【问题标题】:Android Studio Crash Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=6Android Studio 崩溃原因:java.lang.ArrayIndexOutOfBoundsException: length=1;索引=6
【发布时间】:2017-06-30 09:36:37
【问题描述】:

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

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

【问题讨论】:

  • soru 的操作是什么
  • soru 是英文提问的意思。

标签: java android arraylist crash indexoutofboundsexception


【解决方案1】:
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);
            }
}

【讨论】:

  • 引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.String[] java.lang.String.split(java.lang.String)'
猜你喜欢
  • 2019-01-26
  • 2023-04-10
  • 2019-03-30
  • 2020-04-19
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
相关资源
最近更新 更多