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

问题描述:

我为整个应用程序使用了一个数组。但我只设定值的应用程序创建后,用:为什么我的应用程序在我设置数组后崩溃?

 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

堆栈跟踪请。什么线路导致这个问题? – aliteralmind

+0

数组的维数是多少? – eski

+0

在您提供更多信息之前,我们无法帮助您。 – aliteralmind

您的旧代码在顶层数组上使用的索引从1开始,而不是从0开始。它看起来像你的应用程序的其余部分也依赖于该编号。

添加一个“假”的行和列来解决这个问题:

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

+0

哈哈,不错的快速和肮脏的修复:-) – donfuxx

+0

你是对的,我错过了。 但我的应用程序仍然崩溃。 你需要查看哪些部分的日志猫出现错误? – Fynn

+0

@ user2051194请参阅编辑 - 它看起来也需要添加一个虚假栏。 – dasblinkenlight