我一直在研究一个小型应用程序,它可以为我计算复数(分割,减法,乘法等)。我没有明显的编译错误,但是当我运行该程序时,出现一堆运行时错误,我无法理解或知道如何解决。我错过了明显的东西?这是我的代码:Java - Android SDK - 不幸<项目名称>崩溃错误
package complex.OliverV;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.RadioButton;
import android.widget.EditText;
public class ComplexNumbersActivity extends Activity {
Button Check;
RadioButton plus, minus, multiply, div;
EditText X1,X2,Y1,Y2;
TextView Ans;
int sign;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Check = (Button) findViewById(R.id.Check);
plus = (RadioButton) findViewById(R.id.plus);
minus = (RadioButton) findViewById(R.id.minus);
multiply = (RadioButton) findViewById(R.id.multiply);
div = (RadioButton) findViewById(R.id.div);
Ans = (TextView) findViewById(R.id.Ans);
plus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=1;
}
});
minus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=2;
}
});
multiply.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=3;
}
});
div.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=4;
}
});
Check.setOnClickListener(new View.OnClickListener(){
String xs=X1.getText().toString();
String xss=X2.getText().toString();
String ys=Y1.getText().toString();
String yss=Y2.getText().toString();
double x3,y3;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(xs!="" && xss!="" && ys!="" && yss!="")
{
double x1=Double.parseDouble(xs);
double x2=Double.parseDouble(xss);
double y1=Double.parseDouble(ys);
double y2=Double.parseDouble(yss);
switch(sign)
{
case(1):
{
x3=x1+x2;
y3=y1+y2;
}
case(2):
{
x3=x1-x2;
y3=y1-y2;
}
case(3):
{
x3=(x1*x2-y1*y2);
y3=(x2*y1 + x1*y2);
}
case(4):
{
if(x2!=0 && y2!=0)
{
x3 = (x1 * x2 + y1 * y2)/(x2 * x2 + y2 * y2);
y3 = (x2 * y1 - x1 * y2)/(x2 * x2 + y2 * y2);
}
else
{
Ans.setText("Enter valid numbers!");
}
}
}
Ans.setText("x="+x3+"y="+y3);
}
else
{
Ans.setText("Enter valid numbers!");
}
}
});
}
}
我也在我得到了错误的屏幕截图。 我把图片,因为复制文本看起来像一团糟。对于长期的问题感到抱歉,并且感谢任何可以花时间帮助我的人,我非常感谢每一点帮助。 :)
该行已在您的屏幕截图选择(下由...引起)包含NullPointerException发生的行号。不幸的是,它被删除 – petey 2013-02-26 20:48:15
重要的部分是“引起”,然后是一个异常类型,其次是堆栈跟踪。从顶部开始,然后向下,直到找到程序中的第一行。这是你有错误的地方。在这种情况下,你在onCreate的某个地方有一个NullPointerException异常。不幸的是,我无法阅读更多,因为您粘贴图像而不是复制粘贴文本。 – 2013-02-26 20:48:46
编译器错误和运行时错误完全没有关联,因为如果不修复前者,就无法获得后者。 – Simon 2013-02-26 20:49:50