Pregunta Android: EventHub.removeMessages (int what = 107) no es compatible antes de que se configure WebViewCore


Implementé WebView en Dialog Activity y estoy cargando url simple en vista web

la configuración de mi vista web es

wbView = (WebView) findViewById(R.id.wbView);
        wbView.setKeepScreenOn(true);
        wbView.getSettings().setJavaScriptEnabled(true);
        wbView.getSettings().setDomStorageEnabled(true);
        wbView.getSettings().setBuiltInZoomControls(true);
        wbView.setInitialScale(100);
        // wbView.getSettings().setUseWideViewPort(true);
        wbView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
        wbView.setWebViewClient(new MyWebViewClient());

y MyWebViewClient () contiene

private class MyWebViewClient extends WebViewClient {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            prgBar.setVisibility(View.GONE);
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler,
                SslError error) {
            Log.e("Error VAGARO", error.toString());
            prgBar.setVisibility(View.GONE);
            handler.proceed();
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    }

Estoy cargando dos archivos HTML desde el activo en la misma vista web, funciona bien pero no puedo cargar la URL dinámica.

Yo busco en Google y encuentro algunas publicaciones en http://code.google.com/p/android/issues/detail?id=21177

Mi logcat me muestra

05-09 13:33:30.187: W/webcore(20054): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:1683)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore$EventHub.access$7900(WebViewCore.java:926)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore.removeMessages(WebViewCore.java:1795)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebView.sendOurVisibleRect(WebView.java:2917)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager.setZoomScale(ZoomManager.java:593)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager.access$1700(ZoomManager.java:49)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager$PostScale.run(ZoomManager.java:984)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Handler.handleCallback(Handler.java:605)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Handler.dispatchMessage(Handler.java:92)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Looper.loop(Looper.java:137)
05-09 13:33:30.187: W/webcore(20054):   at android.app.ActivityThread.main(ActivityThread.java:4424)
05-09 13:33:30.187: W/webcore(20054):   at java.lang.reflect.Method.invokeNative(Native Method)
05-09 13:33:30.187: W/webcore(20054):   at java.lang.reflect.Method.invoke(Method.java:511)
05-09 13:33:30.187: W/webcore(20054):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-09 13:33:30.187: W/webcore(20054):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-09 13:33:30.187: W/webcore(20054):   at dalvik.system.NativeStart.main(Native Method)

Sugerirme el cambio que debería hacer.

Actualizar

Descubrí que si paso cualquier url como "www.facebook.com" me da este error, pero si lo reemplazo con "https://www.facebook.com", está funcionando bien.


15
2018-05-09 08:16


origen


Respuestas:


El problema que encontré fue debido a la url sin http:// o https://. Así que agregué esta etiqueta si la url no contiene http:// o https://.


8
2018-05-09 10:04



En mi caso, lo arreglé cambiando el orden. Puse el loadUrl antes de getSettings ()

 Fragmento de trabajo a continuación,

mWebView = (WebView) findViewById(R.id.web_view);

// load file
mWebView.loadUrl(SERVER_URL);
mWebView.getSettings().setJavaScriptEnabled(true);

Espero que esto ayude a alguien..


5
2017-07-27 10:43



He visto esta pila a veces durante los últimos días en mi LogCat, pero hasta ahora no estaba bloqueando mi desarrollador. Pero sospecho que está relacionado con las dificultades que mi WebView ocasiona. Parece ser un error que nos afecta no solo a nosotros:


android.webkit.WebViewCore.removeMessages (int): void

1675        private synchronized void removeMessages(int what) {
1676            if (mBlockMessages) {
1677                return;
1678            }
1679            if (what == EventHub.WEBKIT_DRAW) {
1680                mDrawIsScheduled = false;
1681            }
1682            if (mMessages != null) {
1683                Throwable throwable = new Throwable(
1684                        "EventHub.removeMessages(int what = " + what + ") is not supported " +
1685                        "before the WebViewCore is set up.");
1686                Log.w(LOGTAG, Log.getStackTraceString(throwable));
1687            } else {
1688                mHandler.removeMessages(what);
1689            }
1690        }

La cola mMessages tiene que ser NULL para evitar la excepción.

// Message queue for containing messages before the WebCore thread is ready.

Así que es bastante simple: algo está causando que WebCore necesite mucho más tiempo para configurar. Según 107, `SET_SCROLL_OFFSET 'y el stack-trace muestra ZoomManger, verificará si algo en mi código está causando que la vista se active de algún modo al iniciar la configuración.


RESPONDER: Esta excepción será lanzada si llama requestWindowFeature(Window.FEATURE_NO_TITLE) y luego esperar demasiado para llamar setContentView(). ¿Cuánto tiempo puedes esperar? No pude entenderlo. Entonces esas dos serán las primeras líneas en onCreate() desde ahora. El tiempo me mostrará si estoy en lo correcto.

La buena noticia es que esta advertencia está etiquetada webcore es solo una advertencia y no causa ningún impacto en el resto de la aplicación.

La mala noticia es que parece que mi problema no tiene nada que ver con eso y viene de otro lugar.


3
2017-11-06 01:36



El problema generalmente está relacionado con el URL que se señala que no se encuentra. Es un 404 (es decir, una URL que no se encontró). Modificar la URL


1
2018-06-10 16:27



Tengo el mismo problema después de llamar finish() y reiniciar el mismo Activity. Por lo tanto, tal vez no puede simplemente terminar la actividad con un WebView . Hice lo siguiente antes de terminar la actividad y funciona.

try{
        webView.stopLoading();
        ViewGroup parent = (ViewGroup)webView.getParent();
        parent.removeView(webView);
        webView.destroy();
}catch(Exception e){
        Log.e(TAG, "clear webView fail");
        e.printStackTrace();
}
 finish();

0
2018-04-09 08:23