Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

Нужен совет в поиске неизвестной ошибки

11.03.2015, 11:31. Просмотров 334. Ответов 4
Метки нет (Все метки)

Выпустил обновление своего приложения и начались у некоторых пользователей ошибки. А именно при использовании виджета, он либо просто черный без данных, либо приложение вываливается с ошибкой. В консоль разработчика отчеты с ошибками не приходят. У меня на 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Preferences {
    private final String FILENAME = "general_preferences";
    private final String FONT = "font";
 
        private String tvFont;
 
    private Context context;
    
    public Preferences(Context context){
        this.context = context;
    }
 
    public void loadPreferences() {
        SharedPreferences settings = null;
        try{settings = context.getSharedPreferences(FILENAME, Context.MODE_PRIVATE);
        }catch(Exception e){
            setDataDefault();
            return;
        }
        if (settings.getAll().size() == 0) {
            SharedPreferences.Editor editor = settings.edit();
            editor.clear();
            editor.commit();
            setDataDefault();
        } else {
            try{
                tvFont = settings.getString(FONT, "");
            }catch(ClassCastException e){setDataDefault();}
        }
    }
    public void savePreferences() {
        SharedPreferences settings = context.getSharedPreferences(FILENAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();
        editor.putString(FONT, tvFont);
        editor.commit();
    }
    private void setDataDefault(){
        tvFont = "";
    }
    public boolean set_tvFont(String val){
        tvFontSelect = val;
        return true;
    }
    public String get_tvFontSelect(){
        return tvFontSelect;
    }
}


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

Java
1
2
3
4
        Preferences pref = new Preferences(this);
        pref.loadPreferences();
        String tvFont = pref.get_tvFont();
        pref = null;

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

Java
1
2
3
4
        Preferences pref = new Preferences(this);
        pref.set_tvFont("Arial");
                pref.savePreferences();
        pref = null;


Как вообще в таких случаях искать ошибки? Может у кого есть подобный опыт. Спасибо заранее.

Добавлено через 2 часа 12 минут
Похоже в одном месте нашел следующий вылет, только на Андроид 4.0.х и в том случае, если виджет приложения добавляется на рабочий стол сразу, не открывая само приложение сразу после установки.

На виджете у меня есть кнопка его принудительного обновления. Клик по ней задается так:
Java
1
2
3
4
5
            Intent iBtn = new Intent(context, Widget.class);
            iBtn.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            iBtn.setAction(BTN_WIDGET_UPD);
            PendingIntent piBtn = PendingIntent.getBroadcast(context, 0, iBtn, 0);
            updateViews.setOnClickPendingIntent(R.id.ivBtn, piBtn);
Но у меня есть настройка по которой эта кнопка на виджете либо используется либо нет. Поэтому в случае, когда она не используется мне нужно очистить с нее setOnClickPendingIntent. Как мне это сделать?
Я сделал так
Java
1
updateViews.setOnClickPendingIntent(R.id.ivBtn, null);
, но на андроиде 4.0.х вылетает ошибка NullPointerException. На более вкусных дроидах такого нет.

Как быть?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2015, 11:31
Ответы с готовыми решениями:

Нужен совет
Добрый день, решил с головой погрузится в Android программирование, сейчас начал с книги Брюс...

AsincTask нужен совет!
Написал приложение, в кратце алгоритм следующий: 1. MainActivity, состоит из ListView и двух...

Нужен вас совет
У меня в планах реализовать простое приложение, подобие записной книжки с сервером) Хочу получать...

Нужен совет с облачными технологиями
Здраствуйте.Нужна помощь. Тема диплома "Использование облачных технологий в андроид приложениях" ...

Рисование пазлов, нужен совет
Здравствуйте. Начал изучать программирование с написания Паззлов - аналога обычных картонных. Нужен...

4
Pablito
2767 / 2198 / 744
Регистрация: 12.05.2014
Сообщений: 7,718
Завершенные тесты: 1
11.03.2015, 11:35 2
Я не специалист вообще и в код не вникал и поэтому просто спрошу - была очень веская причина назвать свой класс Preferences ?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
11.03.2015, 11:36  [ТС] 3
Цитата Сообщение от Паблито Посмотреть сообщение
была очень веская причина назвать свой класс Preferences ?
Нет, без задней мысли так назвал, но уже переименовал...
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
11.03.2015, 14:44 4
А какая разница? Имя пакета-то другое. Этот класс никак не конфликтует со стандартным.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
11.03.2015, 15:30  [ТС] 5
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А какая разница? Имя пакета-то другое. Этот класс никак не конфликтует со стандартным.
Это точно, но на всякий случай, все же переименовал, так сказать для чистоты эксперимента.
0
11.03.2015, 15:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2015, 15:30

Нужен совет с программой с использованием карт
Ребят, такая проблема. Решил на курсовую (1 курс) сделать приложение с использованием гуглокарт,...

Получение данных с сайта. Нужен совет
Вообщем, есть сайт - база жилья. Каждая карточка жилья - описание + фото. Вопрос: каким образом...

Приложение Android/iOS - нужен совет специалистов
Всех приветствую! Являюсь владельцем блога на WordPress, хочу создать приложение на телефоны. ...


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

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

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