Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
1

FATAL EXCEPTION при смене фрагмента

19.01.2017, 14:48. Просмотров 404. Ответов 10
Метки нет (Все метки)

При смене фрагмента ИНОГДА вываливается ошибка
XML
1
2
3
4
5
6
01-20 14:44:55.539 19482-119482 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                  java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
                                                                      at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
                                                                      at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
                                                                      at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638)
                                                                      at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
Вот так происходит смена фрагмента
Java
1
2
3
4
5
fTrans = getSupportFragmentManager().beginTransaction();
            info _Info = info .newInstance(enums_infoType, uData);
            fTrans.replace(R.id.frgmCont, info, "info");
            if (backStack) fTrans.addToBackStack("info");
            fTrans.commit();

Я не могу понять в чем моя ошибка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2017, 14:48
Ответы с готовыми решениями:

FATAL EXCEPTION: main при старте приложения на android ниже API 21
Не могу понять где искать ошибку. Приложение при запуске на android ниже API...

FATAL EXCEPTION: main
Я только начал проходить уроки по программированию на android и сразу же ошибка...

FATAL EXCEPTION: main
Забавная у меня ситуация, вот создаю новый проект и он не хочет запускаться ни...

FATAL EXCEPTION: main
Всем привет. Не получается программка из урока с передачей данных из одного...

Fatal Exception: main
Здравствуйте, пишу свое первое приложение, помогите пожалуйста. Проблема в том,...

10
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 671
19.01.2017, 15:31 2
ILNAR_93, пробуй вместо commit() писать commitAllowingStateLoss();
за подробностями в гугл. Там куча информации по теме
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
19.01.2017, 15:35  [ТС] 3
Mikalai, про commitAllowingStateLoss(); пишут что использовать в крайнем случае и отличие у этого метода от commit() тоько в том что не будет экзепшена, а фрагмент не поменяется - т.е. программа будет функционировать неправильно
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
19.01.2017, 15:44 4
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
программа будет функционировать
она уже не будет функционировать, потому что она как минимум завершает свою работу
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
after onSaveInstanceState
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
19.01.2017, 15:54  [ТС] 5
Паблито,
я вот понять не могу, onSaveInstanceState происходит перед onPause?, а ошибка выходит даже когда телефон всегда был активным (не было еще onPause).





p.s. команду на смену фрагмента подает сервис при помощи android.os.Handler (если происходит onPause то сервис эти команды не отсылает т.к. программа переходит в баграунд режим)

Java
1
2
3
4
5
6
7
 private class ServiceHandler extends android.os.Handler{
        @Override
        public void handleMessage(android.os.Message messages){
 
}
 
}
Добавлено через 5 минут
У вас(форумчаН) такое наблюдалось? Или я один такой...

Как решается то?
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
19.01.2017, 15:54 6
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
onSaveInstanceState происходит перед onPause
не уверен и могу ошибаться, но он вызывается после того как в активити вызовется onStop
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
, а ошибка выходит даже когда телефон всегда был активным (не было еще onPause).
не верю
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
19.01.2017, 15:57  [ТС] 7
Цитата Сообщение от Паблито Посмотреть сообщение
не верю
зачем мне врать то) - проверю еще раз. Врдкг что то проморгал..


во всяком случае в логи нечего не писалось
Java
1
2
3
4
5
6
 @Override
    protected void onPause() {
        super.onPause();
        Log.d("MainActivityStatus", "onPause");
        singleton.inBackgroundMode = true;
    }
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
13.03.2017, 09:34  [ТС] 8
Не могу найти ответ что это за ***.



При смене фрагмента иногда выскакивает вышеуказанная ошибка. Из-за чего она выходит для меня вообще непонятно. MainActivity запущена и открыта, экран "горит" - но временами такая шняга....


Перед этим возможно бывают след. действия:

1) запуск MainActivity
2) много раз смена фрагментов
3) экран потух и через пару секунд/минут заново восстанавливаю MainActivity
4) и при смене фрагмента (программно, сервис отправляет сигнал на смену фрагмента в Messenger) и программа сваливается с ошибкой указанной выше..

Ребята помогите разобраться... В чем дело то?
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
13.03.2017, 10:28 9
Java
1
fTrans = getSupportFragmentManager().beginTransaction();
попробуйте не держать fTrans переменной класса, а создайте его заново.
т.е так FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();


еще , пишут что это известный баг в API>11,
попробуйте не вызывать super() в функции onSaveInstanceState
т.е так:
Java
1
2
3
4
@Override
protected void onSaveInstanceState(Bundle outState) {
    //No call for super(). Bug on API Level > 11.
}
вот тут есть решение что делать если все таки надо что то сохранять: (то что с зеленой галочкой)
http://stackoverflow.com/questions/7...tancestate-wit
1
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
13.03.2017, 13:31  [ТС] 10
shavuz, Спасибо. попробую.
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,895
Записей в блоге: 3
05.04.2017, 23:28  [ТС] 11
не помогло
0
05.04.2017, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2017, 23:28

FATAL EXCEPTION: main
добрый день, столкнулся с проблемой, когда выбивает подобную ошибку: 12-12...

FATAL EXCEPTION: main
Пишу свое 1 приложение, столкнулся с проблемой. при загрузке FATAL ERROR и все...

FATAL EXCEPTION: main
Вот код: import com.independentsoft.exchange.Service; import...


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

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

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