我正在创建我的第一个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和活动。有人可以给我一个想法,我应该在哪里寻找导致此错误的原因或者您需要更多信息。感谢。
答案 0 :(得分:0)
此行发生异常
Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
startActivity(toptailtype);
使用此代码开始不同的活动
Intent toptailtype = new Intent(Propellers.this,SecondActivity.class);
startActivity(toptailtype);
同时确认您正在正常呼叫活动,并且您呼叫的活动不会丢弃任何NPE。