Es könnte sich um einen Fehler in Android 7.0 WebView handeln, Sie können ihn auf zwei Arten beheben:
1, webView.setLayerType (View.LAYER_TYPE_SOFTWARE, null);
2, android: hardwareAccelerated="false"
Ich habe eine App geschrieben, die HTML-Seiten in Webviews anzeigt, die in einem ViewPager verwaltet werden. Alles funktioniert gut, aber ich habe ein paar ANRs gehabt, wenn ich von einer Seite zur anderen gewischt habe. Der ANR-Daten-Dump zeigt, dass der Haupt-Thread über ThreadedRenderer.nSyncAndDrawFrame () aufgerufen hat, der eine systemeigene Methode aufruft, die scheinbar mit dem Renderer-Thread kommuniziert und darauf wartet, dass dieser Thread das Zeichnen der Ansicht beendet. Da beide systemeigenen Code ausführen, ist es schwierig herauszufinden, was passiert, aber es scheint, dass der Renderer-Thread nie signalisiert hat, dass der Haupt-Thread fortgesetzt wird, was wiederum den ANR verursacht. Es gibt nichts im Logcat vor dem ANR-Bericht, das auf ein Problem hindeutet.
Hat jemand Vorschläge, wie Sie dies beheben können? Ich nehme an, dass der Aufruf von ThreadedRenderer.nSyncAndDrawFrame () mit dem Webview verknüpft ist, aber ich habe eigentlich nichts zu bestätigen.
Das Problem ist nicht wiederholbar, in dem Sinne, dass, wenn ich die App neu starte und zu derselben Seite navigiere, die beim Auftreten der ANR aufgetreten ist, passiert es nicht noch einmal. Gerät ist ein Nexus 7 mit Android 5.1.
ANR Stacktrace für Haupt- und Renderer-Threads:
%Vor%Ich habe auch mit diesem Problem konfrontiert Scheint, dass Chromium Bug, der mit dem neuesten Chromium Webview 43.0.23567.121 verwandt ist. Sie können versuchen, eine Webansicht in Ihrer App zurückzusetzen und sie erneut zu überprüfen. Für mich Problem reproduzierbar nur bei der neuesten Webview-Version.
Ich habe auch mit diesem Problem konfrontiert Scheint, dass Chromium Bug, der mit dem neuesten Chromium Webview 43.0.23567.121 verwandt ist. Sie können versuchen, eine Webansicht in Ihrer App zurückzusetzen und sie erneut zu überprüfen. Für mich Problem reproduzierbar nur bei der neuesten Webview-Version.
Dies ist möglicherweise ein %code% und %code% Bug, siehe Ссылка
Ich habe eine App geschrieben, die HTML-Seiten in Webviews anzeigt, die in einem ViewPager verwaltet werden. Alles funktioniert gut, aber ich habe ein paar ANRs gehabt, wenn ich von einer Seite zur anderen gewischt habe. Der ANR-Daten-Dump zeigt, dass der Haupt-Thread über ThreadedRenderer.nSyncAndDrawFrame () aufgerufen hat, der eine systemeigene Methode aufruft, die scheinbar mit dem Renderer-Thread kommuniziert und darauf wartet, dass dieser Thread das Zeichnen der Ansicht beendet. Da beide systemeigenen Code ausführen, ist es schwierig herauszufinden, was passiert, aber es scheint, dass der Renderer-Thread nie signalisiert hat, dass der Haupt-Thread fortgesetzt wird, was wiederum den ANR verursacht. Es gibt nichts im Logcat vor dem ANR-Bericht, das auf ein Problem hindeutet.
Hat jemand Vorschläge, wie Sie dies beheben können? Ich nehme an, dass der Aufruf von ThreadedRenderer.nSyncAndDrawFrame () mit dem Webview verknüpft ist, aber ich habe eigentlich nichts zu bestätigen.
Das Problem ist nicht wiederholbar, in dem Sinne, dass, wenn ich die App neu starte und zu derselben Seite navigiere, die beim Auftreten der ANR aufgetreten ist, passiert es nicht noch einmal. Gerät ist ein Nexus 7 mit Android 5.1.
ANR Stacktrace für Haupt- und Renderer-Threads:
%Vor%Es könnte sich um einen Fehler in Android 7.0 WebView handeln, Sie können ihn auf zwei Arten beheben:
1, webView.setLayerType (View.LAYER_TYPE_SOFTWARE, null);
2, android: hardwareAccelerated="false"
Tags und Links android android-webview android-anr-dialog