title: Null Pointer Exception when calling getResources()
body: <p>I'm making a quiz program for android, and to keep things compatible for different languages, I've put all my quiz questions and labels in my strings.xml file.  Basically the functionality I'm looking for is to have the first question display in a TextView, then when the user submits their answer, it updates to the next question.  </p>
  
  <p>Here is my code along with the error message I'm getting. </p>
  
  <pre><code> --------- beginning of crash
  11-16 10:37:21.723 26952-26952/com.example.neil.bsgquiz E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            Process: com.example.neil.bsgquiz, PID: 26952
                                                                            java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.neil.bsgquiz/com.example.neil.bsgquiz.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2337)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
                                                                                at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                at android.os.Looper.loop(Looper.java:148)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
                                                                             Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
                                                                                at android.content.ContextWrapper.getResources(ContextWrapper.java:87)
                                                                                at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:81)
                                                                                at android.support.v7.app.AppCompatActivity.getResources(AppCompatActivity.java:551)
                                                                                at com.example.neil.bsgquiz.MainActivity.&lt;init&gt;(MainActivity.java:28)
                                                                                at java.lang.Class.newInstance(Native Method)
                                                                                at android.app.Instrumentation.newActivity(Instrumentation.java:1090)
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) 
                                                                                at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                at android.os.Looper.loop(Looper.java:148) 
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5443) 
                                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
  
  
  
  
  package com.example.neil.bsgquiz;
  
  import android.content.res.Resources;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.widget.EditText;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import org.w3c.dom.Text;
  
  import static android.icu.lang.UCharacter.GraphemeClusterBreak.T;
  
  public class MainActivity extends AppCompatActivity {
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
      }
  
      int correctAnswers = 0;
      int questionCounter = 0;
  
      //TODO  Bug seems to be in this section, about getting resources.
  
      //get question header array from resources
      Resources res = getResources();
      String[] questionHeaders = res.getStringArray(R.array.question_header_array);
  
      //get answer key array from resources
      String[] answerKey = res.getStringArray(R.array.answer_key_array);
  
      //get questions from resources
      String[] questions = res.getStringArray(R.array.questions_array);
  
  
      public void submitAnswer() {
          //create Edit Text object, and extract user input answer from it
          EditText userAnswerEditText = (EditText) findViewById(R.id.answer_text);
          String userAnswer = userAnswerEditText.getText().toString();
  
          //compare against answer key and tell user if right or wrong
          if (userAnswer.compareToIgnoreCase(answerKey[questionCounter]) == 0) {
              Toast.makeText(this, "That's Correct!", Toast.LENGTH_SHORT).show();
              correctAnswers++;
          } else {
              Toast.makeText(this, "Sorry, That's Incorrect", Toast.LENGTH_SHORT).show();
          }
          nextQuestion();
      }
  
      /**
       * @param questionNumber: what question are we getting a hint for
       * @return String containing a hint to give to the user
       */
      private String getHint(int questionNumber) {
          return "0";
      }
  
      private void nextQuestion() {
          //step forward question header
          TextView headerText = (TextView) findViewById(R.id.question_header);
          headerText.setText(questionHeaders[questionCounter]);
  
          //step forward question text
          TextView questionText = (TextView) findViewById(R.id.question_text_view);
          questionText.setText(questions[questionCounter]);
  
          //reset hint for EditText
          EditText userAnswerEditText = (EditText) findViewById(R.id.answer_text);
          userAnswerEditText.setHint("Answer");
  
          //update correct answer counter
          TextView correctAnswers = (TextView) findViewById(R.id.correct_answer_counter);
          correctAnswers.setText(correctAnswers + " / 8");
  
          questionCounter++;
      }
  }
  </code></pre>