Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener

问题遇到的现象和发生背景

遇到一个空指引,但不知道怎么改

问题相关代码,请勿粘贴截图

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;

import zj.yd1.jsjxy.gdpnc.cn.edu.Adapter.AP;
import zj.yd1.jsjxy.gdpnc.cn.edu.Adapter.DBAdapter;
import zj.yd1.jsjxy.gdpnc.cn.edu.R;
import zj.yd1.jsjxy.gdpnc.cn.edu.TabHost.MyActivity;

import static android.widget.Toast.makeText;

public class LogActivity extends AppCompatActivity implements OnClickListener {
private DBAdapter dbAdapter;
//声明控件
private EditText et_username,et_password;
private Button button_log,button_reg,mbutton_log;

//oncreate开始
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    dbAdapter = new DBAdapter(this);
    dbAdapter.open();
    initView();

}
//oncreate结束

private void initView(){
    et_username = findViewById(R.id.textView_username);
    et_password = findViewById(R.id.textView_password);
    button_log = findViewById(R.id.button_log);
    button_reg = findViewById(R.id.button_reg);
    mbutton_log = findViewById(R.id.manager_button_login);

    button_log.setOnClickListener(this);
    button_reg.setOnClickListener(this);
    mbutton_log.setOnClickListener(this);
}

//跳转主界面


@Override
public void onClick(View view) {
    String username = et_username.getText().toString().trim();
    String password = et_password.getText().toString().trim();
    switch (view.getId()) {

        case R.id.button_reg:
            startActivity(new Intent(LogActivity.this, RegisterActivity.class));
            finish();
            break;
        case R.id.Manager_Login_Button:
            startActivity(new Intent(LogActivity.this, ManagerLoginActivity.class));
            finish();
            break;
        case R.id.button_log:
            startActivity(new Intent(LogActivity.this, MyActivity.class));
            AP[] ap = dbAdapter.read();

            if (username != null && password != null && username.equals("") || password.equals("")) {
                //开始遍历
                boolean match = false;
                for (int i = 0; i < ap.length; i++) {
                    int xml_username = ap[i].username;
                    int xml_password = ap[i].userpasswd;
                    if (username.equals(xml_username) && password.equals(xml_password)) {
                        match = true;
                        break;
                    } else {
                        match = false;
                    }
                }

// 结束遍历
if (match) {
makeText(LogActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LogActivity.this, MainActivity.class);
startActivity(intent);
finish();//销毁此Activity
}

            } else {
                makeText(LogActivity.this, "账号或者密码不能为空", Toast.LENGTH_LONG).show();
            }


    }
}

}

运行结果及报错内容

Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

我的解答思路和尝试过的方法

百度了,没找到结果,特来请教各位

我想要达到的结果

打断点跟踪一下,或者用system.out.println()打印跟踪一下,如下方法。

img