Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Iwantamillion
0 / 0 / 1
Регистрация: 11.07.2014
Сообщений: 3
#1

При проверке элемента массива на пустоту вылетает исключение

13.07.2014, 20:28. Просмотров 690. Ответов 1
Метки нет (Все метки)

Всем привет.

Есть сервис с задачей (Runnable) определить геолокацию, которая запущена в основном потоке приложения (runOnUiThread()). В сервисе инициализирован строковый массив, который будет содержать геолокацию. Инициализируется он в методе onCreate() сервиса, передается в класс LocationListener через параметры конструктора и там, когда геолокация определится, заполняется.

В другой activity я биндюсь к этому сервису, и по нажатию кнопки запускаю таймер с задачей:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Override
        public void run() {
            try {
                String[] locationData = serviceConnection.serviceLocation().locationData;
                if (locationData[0].isEmpty()) {
                    Log.e("Tag", "locationData isEmpty");
                    return;
                }
                else {
                    Log.e("Tag", "locationData !isEmpty");
                    //location = location(locationData);
                    timer.cancel();
                    dialogWait.dismiss();
                }
            }
            catch(Exception e) {
                timer.cancel();
                dialogWait.dismiss();
                Toast.makeText(context, toastTaskFail, Toast.LENGTH_SHORT).show();
            }
        }
причем, задача выполняется так же в UI потоке:

Java
1
2
3
4
5
6
7
TimerTask tTask = new TimerTask() {
            
            @Override
            public void run() {
                context.runOnUiThread(tTaskRun);
            }
        };
Вот эта строчка срабатывает, присвоение ссылки на массив, находящийся в сервисе происходит хорошо:

Java
1
String[] locationData = serviceConnection.serviceLocation().locationData;
Значит, ссылка не null. Но дальше, при проверки на пустоту элементов этого массива вылетает исключение NullPointerException:

Кликните здесь для просмотра всего текста

07-13 19:55:45.332: E/AndroidRuntime(3140): java.lang.NullPointerException
07-13 19:55:45.332: E/AndroidRuntime(3140): at dangeroussection.functional.serviceuploadtoserver.GetLocation$1.run(GetLocation.java:86)
07-13 19:55:45.332: E/AndroidRuntime(3140): at android.os.Handler.handleCallback(Handler.java:725)
07-13 19:55:45.332: E/AndroidRuntime(3140): at android.os.Handler.dispatchMessage(Handler.java:92)
07-13 19:55:45.332: E/AndroidRuntime(3140): at android.os.Looper.loop(Looper.java:153)
07-13 19:55:45.332: E/AndroidRuntime(3140): at android.app.ActivityThread.main(ActivityThread.java:5299)
07-13 19:55:45.332: E/AndroidRuntime(3140): at java.lang.reflect.Method.invokeNative(Native Method)
07-13 19:55:45.332: E/AndroidRuntime(3140): at java.lang.reflect.Method.invoke(Method.java:511)
07-13 19:55:45.332: E/AndroidRuntime(3140): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-13 19:55:45.332: E/AndroidRuntime(3140): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-13 19:55:45.332: E/AndroidRuntime(3140): at dalvik.system.NativeStart.main(Native Method)


Подскажите, в чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2014, 20:28
Ответы с готовыми решениями:

Программа вылетает не смотря на то что исключение перехвачено
Добрый день, в AsyncTask выполняется загрузка с сервера, все это дело взято в...

Исключение символов при проверке
В общем, нужно, чтобы по нажатию на кнопку, из текст бокса считывалось слово...

При запуске программы вылетает исключение, при отладке кода его нет
Всем привет! Есть такой код. public class Solution { public static void...

Вылетает исключение при чтении из файла
Код такой: HANDLE fileHandle; fileHandle = CreateFile("c:\\1.txt",...

Ошибка при проверке элемента структуры
в общем есть структура. struct rost { char family; char pol; int cm;...

1
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
14.07.2014, 12:26 #2
Проблема в недостаточном знании Java и в неумении анализировать ошибки и дебажить код. Советую научится для начала этому а уж потом писать код. Много времени вам сэкономит в будущем
serviceConnection.serviceLocation().locationData - это массив и он не равен null.
а вот его элементы вполне могут быть равны null.
что у вас и происходит когда вы пытаетесь проверить элемент locationData[0] не пустой ли он - Null Pointer Exception
это значит что обьект locationData[0] равен null а вы пытаетесь у его вызвывать метод isEmpty()
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2014, 12:26

При работе программы вылетает исключение NullReferenceException
Добрый вечер, при работе программы выливает исключение на строчки вот само...

Вылетает исключение при создании Bitmap по частям
Здравствуйте, проблема такая: принимаю по сети картинку (по частям), части...

При попытке каста компонента к TObject вылетает AV исключение
Всем доброго времени суток Продолжаю "вникать в принципы ООП" - прочитал...


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

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

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