2012-05-09 8 views
15

Implementé WebView en Dialog Activity y estoy cargando url simple en webview.Android: EventHub.removeMessages (int what = 107) no es compatible antes de que se configure WebViewCore

mi configuración WEBVIEW son tan

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 de los activos en la misma vista web está bien, pero no puede cargar URL dinámica de trabajo .

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

me sugieren el cambio de que hiciera.

actualización

He descubierto que si voy a pasar cualquier URL como "www.facebook.com", entonces me facilita este error, pero si voy a reemplazarlo con "https: // www.facebook.com "entonces está funcionando bien.

+2

También verá este error si intenta cargar una javascript: url en una página que no sea resistente. –

Respuesta

8

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

+8

¿Qué ocurre con la carga de la URL local, p. de los activos? file: // ... – user802421

+0

Im no estoy seguro al respecto ... –

+0

Acabo de tener el mismo problema en un Toshiba AT300 (Android 4.0.3) debido a una barra inclinada en la URL: http://scratch.mit.edu/projects/editor/ –

1

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ó). Modifique la URL

5

En mi caso, lo arreglé cambiando el orden. Pongo el LoadURL antes getSettings()

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

3

he visto esta pila de 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 afectando 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 Nula 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.


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

La buena noticia es que esta advertencia 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.

0

Tengo el mismo problema después de llamar a finish() y reiniciar el mismo Activity. Por lo tanto, tal vez no pueda simplemente finalizar 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(); 
Cuestiones relacionadas