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

He implementado WebView en la actividad de diálogo y estoy cargando url simple en webview.

Mis ajustes de Webview son como

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 webview su funcionamiento bien, pero no puede cargar URL dinámica.

Google y encontrar 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) 

Sugiera el cambio que debo hacer.

Actualizar

Me pareció que si voy a pasar cualquier url como "www.facebook.com", entonces me está dando este error, pero si voy a reemplazarlo con "https://www.facebook.com", entonces su trabajo bien.

El problema que encontré fue debido a la URL sin http:// o https:// . Por lo tanto, añadí esta etiqueta si la url no contiene http:// o https:// .

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

Trabajando el fragmento 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 ..

He visto esta pila a veces durante los últimos días en mi LogCat, pero hasta ahora no estaba bloqueando mi dev. Pero sospecho que está relacionado con la dificultad de mi WebView somtetimes hace. Parece ser un error que afecta no sólo 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 muy simple: algo está haciendo que la WebCore necesite mucho más tiempo para configurar. De acuerdo con que 107 es `SET_SCROLL_OFFSET 'y el seguimiento de pila muestra ZoomManger comprobaré si algo en mi código está causando que la vista se active de alguna manera al iniciar la configuración.


RESPUESTA : Esta excepción se lanzará si llama a requestWindowFeature(Window.FEATURE_NO_TITLE) y luego espera demasiado tiempo para llamar a setContentView() . Cuánto tiempo puedes esperar, no pude averiguar. Así que esos dos serán las primeras líneas en onCreate() partir de ahora. El tiempo me mostrará si tengo razón.

La buena noticia es que esta advertencia etiquetada webcore es sólo una advertencia y por sí misma 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 él y viene de algún otro lugar.

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

Tengo el mismo problema después de que llamé a finish() y reinicie la misma 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(); 
  • ShouldOverrideUrlLoading en WebView para Android no se está ejecutando
  • Cómo obtener URL de enlace en Android WebView con HitTestResult para una imagen vinculada (y no la URL de imagen) con Longclick
  • Android: cómo interceptar un formulario POST en android WebViewClient en el nivel 4 de API
  • Cargar la imagen en caché de WebView en un ImageView
  • WebView de Android ignorando target = "_ blank" cuando se agrega WebViewClient
  • Webview - cambiar la fuente de la página antes de mostrar el sitio web?
  • WebView loadUrl sólo funciona una vez
  • URL de Soundcloud abierta en la aplicación nativa Soundcloud de WebView
  • Deshabilitar Android WebView / WebViewClient Iniciado favicon.ico Solicitar
  • Android WebViewClient onLoadResource () llamada agian después de onPageFinished () cuando targetSdkVersion es 19
  • Android WebClient, devolver un recurso de imagen a través de WebResourceResponse - no mostrar la imagen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.