Я пытаюсь разработать приложение для отправки электронных писем, на самом деле я только начал изучать Java.Получить строку из SharedPreferences в AsyncTask
Я создал строки «email_address» и «pass» в своих общих ссылках, чтобы пользователь мог их изменить. Тогда я пытаюсь отправить электронную почту, используя эти данные ->
//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 { <...>
А потом я получил это:
Вызванный: java.lang.NullPointerException: Попытка вызвать метод интерфейса «java.lang.String android.content.SharedPreferences.getString (java.lang.String, java.lang.String)»на нулевой ссылки на объект
Android Studio указывает мне на этой линии ->
return new PasswordAuthentication(sharedPrefs.getString("email_address", "a"), sharedPrefs.getString("pass", "a")); }
Если я hardc ode my gmail и password в этой строке, он отлично работает, но мне нужно изменить их (в случае, если пользователь не может создать это приложение из моего исходного кода). Пожалуйста, помогите, я уже 3 часа просматривал этот сайт и androiddevelopers тоже. :(
Вы инициализировали 'sharedPrefs', получив его из' context'? – AndiGeeky
Поскольку вы изучаете Java, вы должны знать, что такое пустой указатель и как его решить: http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i- fix-it – adalPaRi
И как @AndiGeeky говорит, ваша переменная 'sharedPrefs' не инициализируется. Это проблема. – adalPaRi