Мое приложение состоит из Фрагментов с полноэкранным режимом WebView . Когда пользователь нажимает на ссылку в WebView , открывается новый Фрагмент с новым WebView с тем же URL . Перед открытием новой Фрагмент закрываю софт-клавиатуру на всякий случай. Я открываю новую страницу очень быстро. Все операции выполняют в основном потоке.
По Crashlytics проблема возникает только на Android 10 (все устройства серии Pixel и другие устройства с 10). На устройствах до Android 10 все работает нормально. Я могу многое открыть Фрагменты . Но на устройствах Android 10 этот случай приводит к ИСКЛЮЧИТЕЛЬНОМУ ИСКЛЮЧЕНИЮ (после 2-3 быстрых попыток случайного открытия новой страницы):
E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
Process: <myapp>, PID: 12487
java.lang.RuntimeException: Probable deadlock detected due to WebView API being called on incorrect thread while the UI thread is blocked.
at Yp.a(PG:13)
at com.android.webview.chromium.WebViewChromium.onCheckIsTextEditor(PG:4)
at android.webkit.WebView.onCheckIsTextEditor(WebView.java:3035)
at android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1901)
at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1863)
at android.view.inputmethod.InputMethodManager.hideSoftInputFromWindow(InputMethodManager.java:1506)
at android.view.inputmethod.InputMethodManager.hideSoftInputFromWindow(InputMethodManager.java:1475)
at <myapp>.Utils.hideKeyboard(Utils.java:175)
at <myapp>.openNewPage(Pager.java:210)
...
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at Yp.a(PG:11)
Я пытался использовать все доступные версии Android System WebView (стабильный, бета, dev, canary), но ничто не поможет.
Кто-нибудь может мне помочь?
Обновление :
Если я прокомментирую код для скрытия программной клавиатурытогда все работает нормально.