错误java.lang.RuntimeException:无法启动活动
我正在创建我的第一个Android应用程序,所以我对它非常陌生。一切都进行得很顺利,但现在我犯了一个错误。这个应用程序非常简单。基本上有一个带有一个问题和两个按钮的活动。根据问题的答案,您可以单击其中一个按钮进入另一个活动。基本上你们一直在回答这个问题,直到你们得到最后的答案 我得到错误的地方以前是工作的,但现在它崩溃了,我不知道为什么 以下是错误:错误java.lang.RuntimeException:无法启动活动,java,android,android-intent,Java,Android,Android Intent,我正在创建我的第一个Android应用程序,所以我对它非常陌生。一切都进行得很顺利,但现在我犯了一个错误。这个应用程序非常简单。基本上有一个带有一个问题和两个按钮的活动。根据问题的答案,您可以单击其中一个按钮进入另一个活动。基本上你们一直在回答这个问题,直到你们得到最后的答案 我得到错误的地方以前是工作的,但现在它崩溃了,我不知道为什么 以下是错误: 02-28 18:45:42.969 1851-1851/c.whats_that_plane D/AndroidRuntime﹕ Shut
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);
}
}
特别是当我单击“否”按钮时。调用上述代码的这一部分
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);
}
}
);
}
在意图中,如果我将活动c.whats_that_plane.jtailtype替换为c.whats_that_plane.ptailtype,就像单击“是”按钮一样,它将转到ptailtype活动。因此,当它试图调用jtailtype活动时,出现了一些错误
我到处看,一切都很好。清单、Java和活动。有没有人能告诉我应该在哪里查找导致此错误的原因,或者您是否需要更多信息。谢谢。此线路出现异常
Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
startActivity(toptailtype);
使用此代码启动不同的活动
Intent toptailtype = new Intent(Propellers.this,SecondActivity.class);
startActivity(toptailtype);
同时确认您正在正确调用activity,并且您调用的activity没有抛出任何NPE。当您试图将
onClickListener()
设置为按钮或视图中的一个为空的时,activity出现了jtailtype
问题。谢谢您的回复。我理解它是空的,因为它在错误消息中说。问题是我不知道为什么它是空的。我可以将按钮调用的活动更改为ptailtype,它将转到ptailtype活动,但它是jtailtype,不会转到jtailtype活动。据我所知,这意味着按钮没有问题,但活动一定有问题,对吗?是的,没错,在jtailtype
活动中有问题,这就是我告诉你发布jtailtype
活动代码的原因。如果你以不同的意图单击“否”按钮,它可以正常工作,但是如果你用这个“c.plane.jtailtype”做什么它没有?我这样问是因为我认为问题出在你们提到的按钮上。这不是原因。问题是调用活动似乎有一些NullPointerException。好的。。但它似乎是“c.whats_the_plane.ptailtype”,用户只调用了一个包名,而意图重载了构造函数。请再次读取异常:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)”