Привет, Эксперт Разработчики Android:
У нас есть приложение для Android, и наш основной рабочий процесс выглядит следующим образом
- Пользователь отправляет ссылку по электронной почте или текстовое сообщение
- Пользователь нажимает на ссылку, и страница открывается в браузере Chrome или Android по умолчанию и имеет кнопку с именем JOIN
- Пользователь нажимает эту кнопку JOIN , и наше приложениезапускается, и в веб-просмотре отображается страница с просьбой ввести имя, фамилию и телефон / адрес электронной почты, а затем пользователь нажимает кнопку с именем INITIATE
- Мы проверяем информацию - еслипользователь новый, мы создаем запись, она существует, мы обновляем ее и т. д., а затем показываем всплывающее окно, сообщающее, что его сеанс будет записан.
- Как только пользователь нажимает OK во всплывающем окне, а затем появляется элемент управления, веб-просмотр и пользователь попадают на собственную страницу Android.
Проблема Как только кнопка «ОК» будет нажата в веб-просмотре, где наша родная страница приложения будет запускаться в обычном режиме до нескольких недель назад, приложение вылетает, и мы возвращаемся к началу страницы веб-просмотра, прося нас ввести данные.
Обратите внимание на следующие предостережения:
- Прежде всего это происходит только в случае Android 9. Мы протестировали это на Samsung Galaxy S8 и S9.И это происходит не каждый раз, но это происходит довольно регулярно, я бы даже сказал, 2 раза из 3.В лучшем случае это происходило 2 раза из 10, но это случалось.
- Этот код успешно выполнялся последние 1 год или около того, и у нас никогда не было этой проблемы.Это начало происходить только в последние 3-4 недели.
- У нас также есть приложение для iOS, в котором такая же проблема не наблюдается.
Вот фрагмент кода, который можетhelp - это то, как мы загружаем веб-просмотр.
webview = findViewById(R.id.webview);
webview.setVisibility(View.VISIBLE);
final ProgressDialog pd = ProgressDialog.show(ActivtyName.this, "", "Please wait", true);
webview.setGeolocationEnabled(true);
webview.setMixedContentAllowed(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setLoadWithOverviewMode(true);
webview.setWebChromeClient(new WebChromeClient()
======= Мы переопределяем множество методов, за которыми следует
webview.setWebViewClient(new WebViewClient()
======= Здесь мы переопределяем методы.
Есть идеи, что может происходить?Мы пытались просматривать журналы во время отладки через режим USB, но мы не видим ничего в журналах, кроме того, что показано на консоли Android, как показано ниже:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.a****d.xyzapp <<<
backtrace:
#00 pc 0000000001b61620 /data/app/com.android.chrome-DpcaMBOCm2oa08upmw1Tug==/base.apk
Вот более подробный журнал по запросу:
2019-05-18 11:58:01.694 23217-23217/com.a**d.xyzapp.debug A/chromium:
[FATAL:crashpad_client_linux.cc(404)] Render process (28925)'s crash wasn't handled by all associated webviews, triggering application crash.
Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7ab7b9d620 in tid 23217 (atientapp.debug), pid 23217 (atientapp.debug) (edited)