当我尝试运行代码时出现此错误。 (为了方便你看到我跳过了大部分未提及我的代码行的其他行)
03-26 22:23:51.800 2425-2425/? E/RCPManagerService: PackageReceiver onReceive() Failed to load meta-data, NullPointer: null
03-26 22:23:53.950 15700-15700/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.bilguun.pengling2, PID: 15700
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bilguun.pengling2/com.example.bilguun.pengling2.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2436)
at at com.example.bilguun.pengling2.MainActivity.onCreate(MainActivity.java:71)
正如你所看到的那样,在onCreate函数的第71行出现错误,我试图在我的网站的其他问题中实例化我称为Fault的类。这是代码(我在外面声明的原因是我在许多其他函数和活动中需要这些类)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Faults=new Fault[14];
for(int i=0;i<15;i++){
Faults[i]=new Fault("Unknown");
}
}
Fault[] Faults;
这是类Fault的代码。 Serializable的原因是,我需要将它传递给其他活动。
class Fault implements Serializable{
public String fault_name="Not known";
public int L_number=0,T_number=0;
public String path="b";
public Fault(String name){
this.fault_name=name;
}
}
我已经尝试了一些可能的方法,包括链接和其他多个,但没有找到解决方案
NullPointerException when Creating an Array of objects
所以我的问题是
答案 0 :(得分:1)
这里有一个明显的问题。您在大小为14的数组中访问索引为14的元素。数组是从零开始的,因此没有索引为14的元素.14个元素的索引编号为0到13.它更容易使用数组的length属性来确保循环始终在bounds中:
Faults=new Fault[14];
for(int i=0; i < Faults.length; i++){
Faults[i]=new Fault("Unknown");
}