错误java.lang.RuntimeException:无法启动活动

时间:2015-03-01 02:14:09

标签: java android android-intent

我正在创建我的第一个Android应用程序,所以我对此非常陌生。一切都很顺利,但现在我收到了错误。该应用程序非常简单。基本上有一个带有问题和2个按钮的活动。根据问题的答案,单击其中一个按钮,将您带到另一个活动。基本上你一直在回答问题,直到你得到最终答案。

我得到错误的地方之前正在工作,但现在它崩溃了,我无法弄清楚原因。

这是错误:

02-28 18:45:42.969    1851-1851/c.whats_that_plane D/AndroidRuntime﹕ Shutting down VM
    --------- beginning of crash
02-28 18:45:42.970    1851-1851/c.whats_that_plane E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: c.whats_that_plane, PID: 1851
    java.lang.RuntimeException: Unable to start activity ComponentInfo{c.whats_that_plane/c.whats_that_plane.jtailtype}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

以下是我点击

按钮的代码
public class Propellers extends ActionBarActivity {

private static Button button_propellers;
private static Button button_jetengine;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_propellers);
    Gotoptailtype ();
    Gotojtailtype ();
}
public void Gotoptailtype () {
    button_propellers = (Button)findViewById(R.id.buttonyes);
    button_propellers.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
                    startActivity(toptailtype);
                }
            }
    );
}
public void Gotojtailtype () {
    button_jetengine = (Button)findViewById(R.id.buttonno);
    button_jetengine.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent tojtailtype = new Intent("c.whats_that_plane.jtailtype");
                    startActivity(tojtailtype);
                }
            }
    );
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_propellers, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

特别是当我点击No按钮时。这称为上面代码的这一部分。

public void Gotojtailtype () {
    button_jetengine = (Button)findViewById(R.id.buttonno);
    button_jetengine.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent tojtailtype = new Intent("c.whats_that_plane.jtailtype");
                    startActivity(tojtailtype);
                }
            }
    );
}

在Intent中,如果我用c.whats_that_plane.ptailtype替换Activity c.whats_that_plane.jtailtype,然后点击是按钮,它将转到ptailtype活动。因此,当它试图调用jtailtype活动时会出现问题。

到处都是我看起来一切都很好看。清单,Java和活动。有人可以给我一个想法,我应该在哪里寻找导致此错误的原因或者您需要更多信息。感谢。

1 个答案:

答案 0 :(得分:0)

此行发生异常

Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
                    startActivity(toptailtype);

使用此代码开始不同的活动

Intent toptailtype = new Intent(Propellers.this,SecondActivity.class);
                    startActivity(toptailtype);

同时确认您正在正常呼叫活动,并且您呼叫的活动不会丢弃任何NPE。