基本上,我是StackOverflow和Android Studio的新手。我对Java也很陌生,并且经验不足。我正在尝试制作一个应用程序,当您单击按钮时,它会打开一个随机活动,我将在其中填充信息。我的应用程序运行了,尽管当我单击MainActivity上的按钮使其重定向到另一个应用程序时,该应用程序崩溃了。我想知道是否有人可以编辑我的代码以摆脱“ java.lang.NullPointerException:尝试调用虚拟方法“ void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)”,并可能解释它的含义简单来说。
因此,在发生崩溃时,我去了StackOverflow并进行了一些研究,发现我可以通过进入Logcat部分并在运行应用程序时查找错误来找到问题的根源。我发现第20行出现问题
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one2);
Button myButton = (Button) findViewById(R.id.button5);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle extras = getIntent().getExtras();
activityList = (ArrayList<Class>) extras.get("ACTIVITY_LIST");
if (activityList.size() == 0) {
Class activity = null;
} else {
Random generator = new Random();
int number = generator.nextInt(activityList.size()) + 1;
Class activity = null;
switch (number) {
case 1:
activity = activityList.get(0);
activityList.remove(0);
break;
case 2:
activity = activityList.get(1);
activityList.remove(1);
break;
case 3:
activity = activityList.get(2);
activityList.remove(2);
break;
case 4:
activity = activityList.get(3);
activityList.remove(3);
break;
default:
activity = activityList.get(4);
activityList.remove(4);
break;
}
Intent intent = new Intent(getBaseContext(), activity);
intent.putExtra("ACTIVITY_LIST", activityList);
startActivity(intent);
}
}
});
}
}
Logcat错误:
“由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)' 在com.example.randomknowlege.ActivityFour.onCreate(ActivityFour.java:20)“
第20行是“ myButton.setOnClickListener(new View.OnClickListener(){”