Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的应用程序在设置数组后崩溃?_Java_Android_Arrays_Crash - Fatal编程技术网

Java 为什么我的应用程序在设置数组后崩溃?

Java 为什么我的应用程序在设置数组后崩溃?,java,android,arrays,crash,Java,Android,Arrays,Crash,我一直在我的应用程序中使用数组。但我仅在创建应用程序后设置值,包括: public String[][] stunde = new String [6][13]; public String[][] lehrer = new String [6][13]; stunde[1][1]= "SZ"; stunde[2][1]= "Bi"; stunde[3][1]= ""; stunde[4][1]= "DG2"; stunde[5

我一直在我的应用程序中使用数组。但我仅在创建应用程序后设置值,包括:

      public String[][] stunde = new String [6][13];
      public String[][] lehrer = new String [6][13];


    stunde[1][1]= "SZ";
    stunde[2][1]= "Bi";
    stunde[3][1]= "";
    stunde[4][1]= "DG2";
    stunde[5][1]= "";


    lehrer[1][1]= "Gt";
    lehrer[2][1]= "Pön";
    lehrer[3][1]= "";
    lehrer[4][1]= "Lc";
    lehrer[5][1]= "";
但现在我想在之前设置这些值,以便在另一种方法中使用它们。 像这样:

  public  String[][] stunde = {
            {"SZ", "SZ", "Ku", "Ku", "M", "M", "GeL1", "EL2"},
           {"Bi", "Bi", "EL2", "EL2", "Pl", "Pl","DG2","If"},
            {"", "", "EL2","EL2", "","","M","Bi"},
            {"DG2", "DG2", "","", "GeL1","GeL1","Pl","Ku"},
            {"", "", "GeL1","GeL1", "If","If","","SZ","","","Sp","Sp"}
    };
但当我在第二段代码中尝试后,我的应用程序在我打开后开始崩溃


知道为什么吗?

您的旧代码在顶级数组中使用索引,从1开始,而不是从零开始。看起来你的应用程序的其余部分也依赖于这个编号

添加“假”行和列以修复问题:

public  String[][] stunde = {
/*0*/  {"", "", "", "", "", "", "", "", ""},
/*1*/  {"", "SZ", "SZ", "Ku", "Ku", "M", "M", "GeL1", "EL2"},
/*2*/  {"", "Bi", "Bi", "EL2", "EL2", "Pl", "Pl","DG2","If"},
/*3*/  {"", "", "", "EL2","EL2", "","","M","Bi"},
/*4*/  {"", "DG2", "DG2", "","", "GeL1","GeL1","Pl","Ku"},
/*5*/  {"", "", "", "GeL1","GeL1", "If","If","","SZ","","","Sp","Sp"}
};
现在,您的行
0
仍然未使用,而您的应用程序中需要行
1
5
的其余部分将找到以前所在的数据。列编号也是如此


注意:一旦你控制住了这一点,并且应用程序不再崩溃,一个长期的方法就是改变使用数组索引
0..4
的代码,而不是
1..5

堆栈跟踪。是哪条线导致了问题?阵列的尺寸是多少?在您提供更多信息之前,我们无法为您提供任何帮助。您是对的,我忽略了这一点。但我的应用程序仍然崩溃。您需要查看日志cat的哪一部分出错?@user2051194请查看编辑-看起来您也需要添加一个伪列。