Fatal Exception: android.view.WindowManager$BadTokenException
В моём приложении возникает ошибка только на устройствах Android OS 7.1.*.
Да, знаю, эта ошибка может появится при использовании контекста закрытой активности, но всё это я учёл, проверил и перепроверил, а диалоговые окна не предусмотрены.
Использую библиотеку Toasty в приложении повсеместно.
Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@2fe3b10 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:922)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:377)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:105)
at android.widget.Toast$TN.handleShow(Toast.java:746)
at android.widget.Toast$TN$2.handleMessage(Toast.java:622)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6816)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
Ответы (1 шт):
Я наконец смог исправить данную проблему. Она может возникать при использовании Toast, а так-же библиотек, основанных на системных Toast в версии Android 7.1.*
При этом пытался воспроизвести ошибку на эмуляторах, но ничего не получалось.
Перерыв несколько сайтов нашёл библиотеку для исправления этого и сделал обёртку для исправления кастомных библиотек Toast. После добавления обёртки ошибки перестали выпадать в Play Console, а Toasty прекрасно работают.
implementation 'me.drakeet.support:toastcompat:1.1.0'
public static void MakeToast(Toast tost, Context context) {
final Toast toasty =tost;
final ToastCompat toast = ToastCompat.makeText(context, "", Toast.LENGTH_LONG);
toast.setView(toasty.getView());
toast.show();
}
easer.MakeToast(Toasty.normal(context, "Привет!", Toasty.LENGTH_SHORT , context.getResources().getDrawable(R.drawable.shopping_cart_24px)),context);