Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 01.04.2016
Сообщений: 3

Ошибка в приложении на android

01.04.2016, 10:41. Показов 1828. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги помогите, кто может.

Есть в приложении такой код обработчика кнопки Back

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    
    @Override
    public void onBackPressed() {
        //super.onBackPressed(); - если использовать, кнопка не отрабатывает как надо, поэтому коммент.
        if ((mWebView.getUrl().equals("http://##/")) || (mWebView.getUrl().equals("file:///##l"))){
            if (back_pressed + 2000 > System.currentTimeMillis())
                finish();
            else {
                Toast.makeText(getBaseContext(), "Нажмите еще раз чтобы выйти", Toast.LENGTH_SHORT).show();
                back_pressed = System.currentTimeMillis();
            }
        }
        else {
            if (back_pressed + 2000 > System.currentTimeMillis()) {
                mWebView.loadUrl("http://####");
                mWebView.reload();
            }
            else {
                Toast.makeText(getBaseContext(), "Нажмите еще раз чтобы выйти в меню выбора казино", Toast.LENGTH_SHORT).show();
                back_pressed = System.currentTimeMillis();
            }
        }
    }
На строке 129 ( if ((mWebView.getUrl().equals("http://##/")) || (mWebView.getUrl().equals("file:///##l"))){) выходит следующий крэш лог

java.lang.NullPointerException
at ru.####.####.MainActivity.onBackPressed( MainActivity.java:129)
at android.app.Activity.onKeyUp(Activity.ja va:2192)
at android.view.KeyEvent.dispatch(KeyEvent. java:2743)
at android.app.Activity.dispatchKeyEvent(Ac tivity.java:2431)
at android.support.v7.view.WindowCallbackWr apper.dispatchKeyEvent(WindowCallbackWra pper.java:50)
at android.support.v7.app.AppCompatDelegate ImplBase$AppCompatWindowCallbackBase.dis patchKeyEvent(AppCompatDelegateImplBase. java:224)
at com.android.internal.policy.impl.PhoneWi ndow$DecorView.dispatchKeyEvent(PhoneWin dow.java:2071)
at android.view.ViewRootImpl.deliverKeyEven tPostIme(ViewRootImpl.java:3964)
at android.view.ViewRootImpl.handleImeFinis hedEvent(ViewRootImpl.java:3912)
at android.view.ViewRootImpl$ViewRootHandle r.handleMessage(ViewRootImpl.java:3047)
at android.os.Handler.dispatchMessage(Handl er.java:99)
at android.os.Looper.loop(Looper.java:174)
at android.app.ActivityThread.main(Activity Thread.java:4952)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:511)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:1027)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)

Версия андроида 4.2.2. и 4.2.1. Что может быть подскажите?!

Добавлено через 1 минуту
Ссылки я просто затер (### - чтоб вы понимали)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2016, 10:41
Ответы с готовыми решениями:

"В приложении произошла ошибка" на Android
Доброго времени суток! Собираю проект под андроид. При запуске на смартфоне выскакивает системная ошибка с текстом "В приложении...

При запуске приложения на Android оно крашится и вылетает с ошибкой "В приложении %название% произошла ошибка"
Как посмотреть логи ошибки? Игра просто была установлена, она не разрабатывалась мной.

Регистрация в android приложении
Добрый день, возник такой вопрос. Как наладить регистрацию с добавлением пользователя в базу данных. В университете дали готовый json файл,...

4
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
01.04.2016, 10:57
Цитата Сообщение от noother Посмотреть сообщение
java.lang.NullPointerException
Цитата Сообщение от noother Посмотреть сообщение
if ((mWebView.getUrl().equals("http://##/")) || (mWebView.getUrl().equals("file:///##l"))){
как вы думаете что это означает?
0
0 / 0 / 0
Регистрация: 01.04.2016
Сообщений: 3
01.04.2016, 12:24  [ТС]
Я честно говоря говнокодер. но я нагуглил что NPE может произойти в трёх случаях:
  • Его кинули с помощью throw
  • Кто-то кинул null с помощью throw
  • Кто-то пытается обратиться по null-ссылке

у меня я так понимаю третий случай? как лучше обработать, если подскажете буду премного благодарен.

P.S. мне нравится ваш КОУЧский подход

Добавлено через 6 минут
Вообще если вот так поменять код вероятность выпадения исключения снизится?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  
public String curUrl;
 
.......  
    @Override
    public void onBackPressed() {
        curUrl = "";
        curUrl = mWebView.getUrl();
        if ((curUrl.equals("http://####/"))||(curUrl.equals("file:///####"))){
            if (back_pressed + 2000 > System.currentTimeMillis())
                finish();
            else {
                Toast.makeText(getBaseContext(), "Нажмите еще раз чтобы выйти", Toast.LENGTH_SHORT).show();
                back_pressed = System.currentTimeMillis();
            }
        }
        else {
            if (back_pressed + 2000 > System.currentTimeMillis()) {
                mWebView.loadUrl("http://####");
                mWebView.reload();
            }
            else {
                Toast.makeText(getBaseContext(), "Нажмите еще раз чтобы выйти в меню выбора казино", Toast.LENGTH_SHORT).show();
                back_pressed = System.currentTimeMillis();
            }
        }
    }
Добавлено через 5 минут
УРА нагуглил


Java
1
2
3
4
5
6
7
8
9
10
11
Object unknownObject = null;
 
//плохой способ - может вызвать NullPointerException
if(unknownObject.equals("knownObject")){
   System.err.println("This may result in NullPointerException if unknownObject is null");
}
 
//правильный способ - исключение NullPointerException не возникнет, даже если unknownObject null
if("knownObject".equals(unknownObject)){
    System.err.println("better coding avoided NullPointerException");
}
Добавлено через 1 минуту
Только вот что лучше. мой код или из нагугленного?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
01.04.2016, 13:15
Лучший ответ Сообщение было отмечено noother как решение

Решение

noother, ваш измененный код с такой же частотой будет кидать NPE. Вы посути ничего там не поменяли. Вы должны решить что ваша программа будет делать если getUrl вернет null
1
0 / 0 / 0
Регистрация: 01.04.2016
Сообщений: 3
01.04.2016, 13:37  [ТС]
Понял, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2016, 13:37
Помогаю со студенческими работами здесь

Карты в android приложении
Всем Здравствуйте. Подскажите уважаемые. Хочу написать приложение в котором на карте google или yandex (еще не определился) будут...

3D графика в Android приложении
Привет всем ,, Подскажите пожалуйста,, Есть идея создать приложение на андройд,,, Суть такова: Создать приложение (не игру),...

Имитация руля в приложении Android
Привет всем. Не нашел подходящей темы, если есть, направьте пожалуйста :) Суть такова: Нужно написать программу под андроид,...

Xml файлы в android приложении
Добрый день , какой код должен быть в MainActivity.java что бы при на нажатии на кнопку в activity.xmд в scrollview выводился текст с...

Исполнение скрипта в android приложении
Как реализовать работу приложения с внешним сценарием, например: при событии приложение загружает текстовый файл со скриптом. В скрипте...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru