Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference

Solution 1:

An Activity is not fully initialized and ready to look up views until after setContentView(...) is called in onCreate().

Only declare the fields like the following:

private EditText usernameField, passwordField;
private TextView error;
private ProgressBar progress;

and then assign the values in onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    usernameField = (EditText)findViewById(R.id.username);
    passwordField = (EditText)findViewById(R.id.password);
    error = (TextView)findViewById(R.id.error);
    progress = (ProgressBar)findViewById(R.id.progress);
}

Might not be part of the problem but as an extra bit of advice a Timer runs the TimerTask on a background thread and that should be avoided in this case. Replace the Timer with a Handler instead to run it on the UI thread.

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
            startActivity(intent);
            finish();
        }
}, 1500);

Solution 2:

Views defined in xml file can only be accessed in java code, after setting the ContentView as the required xml file using:

setContentView(R.layout.xml_file_name);

So 1st call above method inside onCreate method and then initialize the View instances inside onCreate or inside the methods in which the instance will be used.