“ java.lang.NullPointerException:尝试调用虚拟方法”-如何解决此问题?

时间:2019-05-27 23:07:01

标签: java android android-studio android-fragments

基本上,我是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(){”

0 个答案:

没有答案