I'm working on a little quiz game about Iceland. But when I start my second Activity the app crashes with a NullPointerException. Can anybody find out where it is? The code looks at least not wrong to me....
This is the crashing code:
package com.example.root.myapplication;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Quiz extends AppCompatActivity {
Quest[] fragen;
int i=0;
Button btna;
Button btnb;
Button btnc;
Button btnd;
TextView solsign;
TextView frage;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quiz);
    fragen = new Quest[10];
    mkquest();
}
public void mkquest(){
    //fragen = new Quest[10];
     btna = (Button) findViewById(R.id.button2);
     btnb = (Button) findViewById(R.id.button3);
     btnc = (Button) findViewById(R.id.button4);
     btnd = (Button) findViewById(R.id.button5);
     solsign = (TextView) findViewById(R.id.textView2);
     frage = (TextView) findViewById(R.id.textView);
    readArray();
    if(fragen[0].ansA!=null) {
        btna.setText(fragen[0].ansA);
        btnb.setText(fragen[0].ansB);
        btnc.setText(fragen[0].ansC);
        btnd.setText(fragen[0].ansD);
        frage.setText(fragen[0].question);
    }
    else {
        Context context = getApplicationContext();
        CharSequence text = "Exception!!!";
        int duration = Toast.LENGTH_LONG;
        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
    }
}
public void nextquest(View view){
    i++;
    btna.setText(fragen[i].ansA);
    btnb.setText(fragen[i].ansB);
    btnc.setText(fragen[i].ansC);
    btnd.setText(fragen[i].ansD);
    frage.setText(fragen[i].question);
    solsign.setText("");
}
public void checkans(View view){
    switch (view.getId()){
        case R.id.button2:
            if(btna.getText().toString()==fragen[i].rightans){
                solsign.setText("Richtige Antwort!");
            }
            else solsign.setText("Falsche Antwort!");
        break;
        case R.id.button3:
            if(btna.getText().toString()==fragen[i].rightans){
                solsign.setText("Richtige Antwort!");
            }
            else solsign.setText("Falsche Antwort!");
            break;
        case R.id.button4:
            if(btna.getText().toString()==fragen[i].rightans){
                solsign.setText("Richtige Antwort!");
            }
            else solsign.setText("Falsche Antwort!");
            break;
        case R.id.button5:
            if(btna.getText().toString()==fragen[i].rightans){
                solsign.setText("Richtige Antwort!");
            }
            else solsign.setText("Falsche Antwort!");
            break;
    }
}
public  class Quest{
    String question="a";
    String ansA="A";
    String ansB="A";
    String ansC="A";
    String ansD="A";
    String rightans="A";
}
public void readArray(){
    if(fragen[0].ansA!=null) {
        fragen[0].ansA = "Rejkjavik";
        fragen[0].ansB = "Reykjavik";
        fragen[0].ansC = "Reikjavik";
        fragen[0].ansD = "Reykiavik";
        fragen[0].question = "Wie heißt die Hauptstadt Islands?";
        fragen[0].rightans = "Reykjavik";
        fragen[1].ansA = "10.003 Mio. US$";
        fragen[1].ansB = "25.003 Mio. US$";
        fragen[1].ansC = "20.003 Mio. US$";
        fragen[1].ansD = "18.003 Mio. US$";
        fragen[1].question = "Wie hoch ist das BIP Islands (2007)?";
        fragen[1].rightans = "20.003 Mio. US$";
    /* fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
    fragen[0].ansA="";
    fragen[0].ansB="";
    fragen[0].ansC="";
    fragen[0].ansD="";
    fragen[0].question="";
    fragen[0].rightans="";
*/
    }
    else{
        Context context = getApplicationContext();
        CharSequence text = "Exception!!!";
        int duration = Toast.LENGTH_LONG;
        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
    }
}
}
and here comes the exception:
06-28 09:26:38.434 11677-11677/com.example.root.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.root.myapplication, PID: 11677 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.root.myapplication/com.example.root.myapplication.Quiz}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.example.root.myapplication.Quiz$Quest.ansA' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5422) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.example.root.myapplication.Quiz$Quest.ansA' on a null object reference at com.example.root.myapplication.Quiz.readArray(Quiz.java:134) at com.example.root.myapplication.Quiz.mkquest(Quiz.java:45) at com.example.root.myapplication.Quiz.onCreate(Quiz.java:29) at android.app.Activity.performCreate(Activity.java:6251) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5422) at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)`
To me it seems as if everything was initialized correctly...
Thank you very much in advance!
Edit: initializing fragen like this unfortunately doesn't work either:
for (int j=0; j<9; j++) {
            fragen[j] = new Quest();
        }
There is a reference for the classes I want to execute onClick inside my .xml file.
Please don't mark my question as duplicate as I am not able to find my mistake. I know what a NullPointerException is but to me the code is correct....
