Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
#1

NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' - Программирование Android

19.11.2015, 15:34. Просмотров 342. Ответов 11
Метки нет (Все метки)

Вылетает приложение из-за этой ошибки.
Сразу скажу, что я в java вообще нуб
есть класс storage для хранения информации через SharedPreferences
( кстати когда я вызываю getSharedPreferences, каждый раз файл настроек считывается ? эт плохо... )
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Storage {
    private SharedPreferences mSettings;
 
    public Storage(Context context, String Storage_name){
        this.mSettings = context.getSharedPreferences(Storage_name, Context.MODE_PRIVATE);
    }
 
    public Map<String, String> get_all(){
 
        Map<String, String> map = new HashMap<String, String>();
 
        String[] lists =
                this.mSettings.getAll().keySet().toArray(new String[0]);
 
        for (String key : this.mSettings.getAll().keySet()) {
            map.put( key, this.get(key) );
        }
 
        return map;
    }
}
далее в активити
Java
1
2
3
4
5
6
7
8
9
10
11
12
Storage storage_user = storage_user(this, 'user');
 
check_user check_user_obj = new check_user();
 
Map<String, String> params = storage_user.get_all(); // достаем ранее сохраненные параметры
 
  for (Map.Entry<String,String> pair : params.entrySet()){ // проходимся по этим параметрам
    check_user_obj.param_add(  pair.getKey(), pair.getValue()); // добавляем в post запрос параметры
    Log.d("123456", "key = " + key + " , value = " + value);
  }
 
 new net(check_user_obj).execute(); // посылаем http запрос
метод param_add в классе check_user
Java
1
2
3
4
5
private List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>();
 
final public void param_add(String key, String val){
    this.nameValuePairs.add(new BasicNameValuePair(key, val));
}
отваливается в активити на строке check_user_obj.param_add( pair.getKey(), pair.getValue());

я предположил что java не сохраняет объект string при передаче, а хранит на него ссылку поэтому и теряет ее в цикле (но тогда цепочка ссылок все равно должна вести к первоначальному источнику , по другому бред сивой кобылы, тем более java серьезный вроде язык)

В чем может быть проблема и как ее исправить ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2015, 15:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' (Программирование Android):

Ava.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] link.stuzer.stattrack.data - Программирование Android
// Print out the database as array public String getAllWeapons(){ String dbString = new String; SQLiteDatabase...

Ошибка: java.lang.NullPointerException: Attempt to invoke virtual method - Программирование Android
Что исправить ошибку? java.lang.NullPointerException: Attempt to invoke virtual method 'void...

Ошибка java.lang.NullPointerException: Attempt to invoke virtual method - Программирование Android
Помогите, пожалуйста. Делал приложение на андроид для установки обоев и когда выбираю обои приложение выдает ошибку

Java.lang.NullPointerException: Attempt to invoke virtual method именно на версиях начиная с 5 - Программирование Android
приходят ошибки с телфонов именно начиная с версии андройда от 5 вото сам лог буду рад за ответы ...

Attempt to invoke virtual method on a null - Программирование Android
Есть 2 класса. В 1-классе вызываю метод 2-класса. И ошибка: 06-25 10:26:50.207 10459-10459/com.example.evgeny.ShoppingBudget...

Ошибка Attempt to invoke virtual method on a null object reference - Программирование Android
Здравствуйте, создаю приложение, которое работает с firebase. При отправке сообщения приложение вылетает public class Tab3Activity...

11
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 15:36 #2
Цитата Сообщение от gradus Посмотреть сообщение
Storage storage_user = storage_user(this, 'user');
что это должно значить?
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
19.11.2015, 15:41  [ТС] #3
Паблито, вы про пропуск, new ? копипастил не акуратно, в коде все норм
Java
1
Storage storage_user = new storage_user(this, 'user');
0
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 15:43 #4
как можно копипастить и не скопировать new ?
но я не об этом...что такое new storage_user, это класс какой-то?
а где он?
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
19.11.2015, 16:00  [ТС] #5
Паблито, копипастил кусками (вырезал и переименовывал названия)
вместо:
Java
1
Storage storage_user = storage_user(this, 'user');
в коде:
Java
1
Storage storage_user = new storage(this, 'user');
0
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 16:01 #6
что такое new storage() это класс какой-то?
а где он?
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
19.11.2015, 16:04  [ТС] #7
Паблито, самый первый код в моем первом сообщении
0
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 16:07 #8
там нет класса storage
storage и Storage - совершенно разные названия
короче, научись копировать и вставлять текст, не нужно туда лезть руками и что-то редактировать, таким образом ты пускаешь людей, которые собираются тебе помочь, по ложному пути
и сообщение об ошибке польностью скопируй и покажи, ненадо там ничего править
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
19.11.2015, 16:23  [ТС] #9
Паблито, я на 99% уверен что вы изначально поняли алгоритм, т.к. речь шла об явной ошибке, а не поиск ее аномальности.
Поэтому делаю выводы что вы либо не в силах мне помочь, либо у вас включен режим принципиального учителя.
В любом случае извиняюсь за кривой копипаст.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
11-19 16:21:57.452 19271-19271/? E/ActivityThread: Performing stop of activity that is not resumed: {com.example.teh/com.example.teh.MainActivity}
11-19 16:21:57.452 19271-19271/? E/ActivityThread: java.lang.RuntimeException: Performing stop of activity that is not resumed: {com.example.teh/com.example.teh.MainActivity}
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3450)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3531)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.app.ActivityThread.access$1100(ActivityThread.java:156)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.os.Handler.dispatchMessage(Handler.java:102)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.os.Looper.loop(Looper.java:211)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at android.app.ActivityThread.main(ActivityThread.java:5389)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at java.lang.reflect.Method.invoke(Native Method)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at java.lang.reflect.Method.invoke(Method.java:372)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
11-19 16:21:57.452 19271-19271/? E/ActivityThread:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
0
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 16:25 #10
Цитата Сообщение от gradus Посмотреть сообщение
я на 99% уверен что вы изначально поняли алгоритм
Цитата Сообщение от gradus Посмотреть сообщение
у вас включен режим принципиального учителя.
точно!
все еще не видя нормального, связанного логически кода я попробую угадать - в map попадает null, а потом при его взятии оттуда возникает ошибка
new BasicNameValuePair(key, val) я не знаю что это за класс, но ему 99% не нравится что в конструктор подают null
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
19.11.2015, 16:29  [ТС] #11
Паблито,
Java
1
Log.d("123456", "key = " + pair.getKey()+ " , value = " + pair.getValue());
Эта строка тоже в цикле, в логе нет null.
0
Pablito
2507 / 1991 / 620
Регистрация: 12.05.2014
Сообщений: 6,954
Завершенные тесты: 1
19.11.2015, 16:38 #12
1. эта строка идет ниже check_user_obj.param_add( pair.getKey(), pair.getValue()); так что там все еще возможен null
2. лог ошибки не тот вообще
3. что за класс BasicNameValuePair, а то я его не могу найти?
0
19.11.2015, 16:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 16:38
Привет! Вот еще темы с ответами:

Ошибка Attempt to invoke virtual method on a null object reference - Программирование Android
Выдает ошибку. Никак не могу понять в чем проблема. Помогите плиз. Лог ошибки: Caused by: java.lang.NullPointerException: Attempt to...

Ошибка java.lang.NullPointerException - Программирование Android
Возникает ошибка при объявлении строкового массива, я проверил, в файле string все данные есть Лог ошибки: 07-31 15:25:38.258...

FATAL EXCEPTION: main java.lang.NullPointerException - Программирование Android
Помогите есть исходный код package com.br.br; import android.content.Intent; import android.graphics.Bitmap; import...

java.lang.nullpointerexception при создании нового проекта - Программирование Android
Доброго времени суток, собственно вопрос состоит в том что при создании нового проекта в эклипсе появляетса...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru