I'm trying to develop an app for sending emails, actually I just started studying java.
I created strings "email_address" and "pass" in my sharedpreferences so user can change them. Then I try to send email, using that data -->
  //Creating a new session
    session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                //Authenticating the password
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(sharedPrefs.getString("email_address", "a"), sharedPrefs.getString("pass", "a")); }
            });
    try { <...>   
And then I got this :
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)' on a null object reference
Android Studio points me at this line -->
return new PasswordAuthentication(sharedPrefs.getString("email_address", "a"), sharedPrefs.getString("pass", "a")); }    
If I hardcode my gmail and password in that line, it works perfectly, but I need an option to change these (in case of user can't build this app from my source code). Please help, I already spent 3 hours browsing this site and androiddevelopers too. :(
 
     
     
    