为什么我会得到一个nullpointerexception(Android)?
我完全不知道为什么这里会出现nullpointerexception,因为几乎相同的代码在不同的程序中工作。我希望是简单的事情 以下是日志:为什么我会得到一个nullpointerexception(Android)?,android,nullpointerexception,Android,Nullpointerexception,我完全不知道为什么这里会出现nullpointerexception,因为几乎相同的代码在不同的程序中工作。我希望是简单的事情 以下是日志: 04-09 08:18:57.903: ERROR/AndroidRuntime(14378): java.lang.NullPointerException 04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at com.prattia.webs.cheaterphysics.Vectors.sto
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): java.lang.NullPointerException
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at com.prattia.webs.cheaterphysics.Vectors.storeInfo(Vectors.java:216)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at com.prattia.webs.cheaterphysics.Vectors$2.onClick(Vectors.java:67)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at android.view.View.performClick(View.java:2465)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at android.view.View$PerformClick.run(View.java:8907)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at android.os.Handler.handleCallback(Handler.java:587)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at android.os.Handler.dispatchMessage(Handler.java:92)
04-09 08:18:57.903: ERROR/AndroidRuntime(14378): at android.os.Looper.loop(Looper.java:123)
计数器初始化为int,值为0,用于跟踪单击next以存储vAnd的次数。此处是代码的一部分,第67行和第216行标记为:
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
error.setText("");
if(value.toString().length()==0||angle.toString().length()==0)
error.setText("Must enter both value and angle");
else{
storeInfo(); //67
counter++;
}
}
});
public void storeInfo(){
Doublify(value);
Doublify(angle);
//216 info[counter].value = Double.parseDouble(value.getText().toString());
info[counter].angle = Double.parseDouble(angle.getText().toString());
info[counter].radian = rad.isChecked();
if(q1.isChecked())
info[counter].quad=1;
if(q2.isChecked())
info[counter].quad=2;
if(q3.isChecked())
info[counter].quad=3;
if(q4.isChecked())
info[counter].quad=4;
angle.setText("");
value.setText("");
}
在第64行,您在“value”对象上使用
toString
,该对象可能返回TextViewtoString()的默认实现,长度可能不是0
value.toString()
但是在第216行中,您使用正确的方法获取文本值,并且由于您没有测试文本值,因此可能为空:
value.getText().toString()
将第64行更改为如下内容:
if(value.getText() == null || value.getText().toString().length() == 0)
(与角度
值类似)如果JScoobyCed answer不是空指针,则可能是数组
info[counter].value // might be null because array's start at 0 not 1
也许你想要:
info[counter - 1].value
这更有可能引发一个数组索引超出边界的异常而不是NPEYes,先生,你是对的,也许这将是他/她的下一个错误=)这是什么?另外,您在哪里初始化“信息”和值?Vectors.java中的第216行是什么?