【问题标题】:Why does my App crash after i set an array?为什么我设置数组后我的应用程序崩溃?
【发布时间】:2014-03-30 21:51:15
【问题描述】:

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

      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"}
    };

但是在我像在第二个代码中那样尝试之后,我的应用在打开后开始崩溃。

有什么想法吗?

【问题讨论】:

  • 请跟踪堆栈。是哪条线路导致问题?
  • 数组的维度是多少?
  • 在您提供更多信息之前,我们无能为力。

标签: java android arrays crash


【解决方案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 仍未使用,而需要行 15 的应用程序的其余部分将在以前的位置找到数据。列编号也是如此。

注意:一旦您得到控制并且应用不再崩溃,解决此问题的长期方法是更改​​使用数组索引 0..4 而不是 1..5 的代码。

【讨论】:

  • 你说得对,我错过了。但我的应用程序仍然崩溃。需要log cat的哪一部分来查看错误在哪里?
  • @user2051194 请查看编辑 - 看起来您也需要添加一个假列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 2010-09-20
  • 1970-01-01
  • 2010-09-30
相关资源
最近更新 更多