У меня была такая же проблема, что и IllegalStateException, но замена всех моих вызовов commit () с помощью commitAllowingStateLoss () не помогла.
Виновником был вызов DialogFragment.show ().
Я окружаю его с помощью
try {
dialog.show(transaction, "blah blah");
}
catch(IllegalStateException e) {
return;
}
, и он сделал это. ОК, я не могу показать диалог, но в этом случае все было в порядке.
Это было единственное место в моем приложении, где я сначала называл FragmentManager.beginTransaction (), но никогда не называл commit () поэтому я не нашел его, когда искал «commit ()».
Самое забавное, что пользователь никогда не покидает приложение. Вместо этого убийца стал рекламным объявлением AdMob.