У меня есть приложение, которое может иметь несколько WebView одновременно. Время от времени приложение вылетает с собственной ошибкой
SIGTRAP: Trace/breakpoint trap
at 0x7a587dd494(/data/app/com.android.chrome-7kzKsZs3wawWfQ1TQ0h58w==/base.apk!/lib/arm64-v8a/libmonochrome.so:25011348)
Мне удалось отследить ее до проблемы рендерера WebView, которую я могу смоделировать, загрузив неисправный javascript как webView.evaluateJavascript("javascript:(function() { txt = \"a\"; while(1){ txt += \"a\"; } })();", null);
. Сейчас я пытаюсь выяснить, какая страница вызывает проблему в производственном приложении. Для этого я переопределяю WebViewClient.onRenderProcessGone()
и хочу войти в загруженный URL в этот момент. У меня проблема в том, что, поскольку у меня есть несколько WebView, я не могу быть уверен, что сначала вызывается onRenderProcessGone()
на том, который фактически вызвал cra sh.
Из WebViewClient выполните c: Multiple WebView instances may be associated with a single render process. onRenderProcessGone will be called for each WebView that was affected.
Мой вопрос, в WebViewClient.onRenderProcessGone()
, как я могу узнать, какой WebView / WebViewClient вызвал cra sh?