Появилась следующая ошибка при разработке приложения в Android Studio: попытка вызвать виртуальный метод
Ошибка выглядит так "Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference"

private List<Questions> questionList;
private int questionCounter;
private int questionTotalCount;
private Questions currentQuestions;
private ColorStateList testColorDefaultRb;
private boolean answerd;
private int score;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
setupUI();
fetchDB();
}
private void setupUI(){
textViewCorrect = findViewById(R.id.txtCorrect);
textViewWrong = findViewById(R.id.txtWrong);
textViewCountDown = findViewById(R.id.txtViewTimer);
textViewQuestionCount = findViewById(R.id.txtTotalQuestion);
textViewScore = findViewById(R.id.txtScore);
buttonConfirmNext=findViewById(R.id.button);
rbGroup = findViewById(R.id.radio_group);
rb1 = findViewById(R.id.radio_button1);
rb2 = findViewById(R.id.radio_button2);
rb3 = findViewById(R.id.radio_button3);
rb4 = findViewById(R.id.radio_button4);
testColorDefaultRb = rb1.getTextColors();
}
private void fetchDB(){
QuizDbHelper dbHelper = new QuizDbHelper(this);
questionList = dbHelper.getAllQuestions();
startQuiz();
}
private void startQuiz() {
questionTotalCount = questionList.size();
Collections.shuffle(questionList);
showQuestions();
buttonConfirmNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!answerd){
if(rb1.isChecked() || rb2.isChecked() || rb3.isChecked() || rb4.isChecked()){
quizOperations();
}
else{
Toast.makeText(QuizActivity.this, "Выберите опцию", Toast.LENGTH_SHORT).show();
}
}
}
});
}
private void quizOperations() {
answerd = true;
RadioButton rbselected = findViewById(rbGroup.getCheckedRadioButtonId());
int answerNr = rbGroup.indexOfChild(rbselected)+1;
checkSolution(answerNr, rbselected);
}
private void checkSolution(int answerNr, RadioButton rbselected) {
switch (currentQuestions.getAnswerNr()){
case 1:
if(currentQuestions.getAnswerNr()==answerNr){
rb1.setBackground(ContextCompat.getDrawable(this, R.drawable.when_answers_correct));
showQuestions();
}
else {
changetoIncorrectColor(rbselected);
showQuestions();
}
case 2:
if(currentQuestions.getAnswerNr()==answerNr){
rb2.setBackground(ContextCompat.getDrawable(this, R.drawable.when_answers_correct));
showQuestions();
}
else {
changetoIncorrectColor(rbselected);
showQuestions();
}
break;
case 3:
if(currentQuestions.getAnswerNr()==answerNr){
rb3.setBackground(ContextCompat.getDrawable(this, R.drawable.when_answers_correct));
showQuestions();
}
else {
changetoIncorrectColor(rbselected);
showQuestions();
}
break;
case 4:
if(currentQuestions.getAnswerNr()==answerNr){
rb4.setBackground(ContextCompat.getDrawable(this, R.drawable.when_answers_correct));
showQuestions();
}
else {
changetoIncorrectColor(rbselected);
showQuestions();
}
break;
}
if (questionCounter<questionTotalCount){
buttonConfirmNext.setText("Подтвердить и закончить");
}
}
private void changetoIncorrectColor(RadioButton rbselected) {
rbselected.setBackground(ContextCompat.getDrawable(this, R.drawable.when_answers_wrong));
}
public void showQuestions(){
rbGroup.clearCheck();
if(questionCounter<questionTotalCount){
currentQuestions = questionList.get(questionCounter);
textViewQuestions.setText(currentQuestions.getQuestion());
rb1.setText(currentQuestions.getOption1());
rb2.setText(currentQuestions.getOption2());
rb3.setText(currentQuestions.getOption3());
rb4.setText(currentQuestions.getOption4());
questionCounter++;
answerd = false;
buttonConfirmNext.setText("Подтверждаю");
textViewQuestionCount.setText("Вопрос :" +questionCounter + "/" + questionTotalCount);
}
else{
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(),QuizActivity.class);
startActivity(intent);
}
},500);
}
}
}