Aplicación android se estrella en el cambio de url de vista web

Similar a esta pregunta , pero las soluciones no funcionan en mycase.

La aplicación para Android se está bloqueando al ejecutar la función webview.loadUrl
Obteniendo el siguiente error al cerrar:

E / AndroidRuntime (1593): Causado por: java.lang.Throwable: Advertencia: Un método WebView fue llamado en el hilo 'WebViewCoreThread'. Todos los métodos WebView deben ser llamados en el subproceso de la interfaz de usuario. Las versiones futuras de WebView pueden no admitir el uso en otros subprocesos.

EDIT: Intentando ahora ejecutar la función en runOnUiThread (nuevo Runnable () {}) pero obteniendo errores y teniendo problemas con dónde ingresar runOnUiThread dentro del contexto.
Aquí está el código completo:

public class MyJavaScriptInterface { @JavascriptInterface public void androidFieldPrompt(String title, String msg, final String funct) { final EditText input = new EditText(MainActivity.this); AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle(title); alert.setMessage(msg); alert.setView(input); alert.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String value = input.getText().toString(); // ERROR IS BEING THROWN HERE webView.loadUrl("javascript:window."+funct+"('"+value+"')"); return; } }); alert.show(); } } 

E / AndroidRuntime (1593): Causado por: java.lang.Throwable: Advertencia: Un método WebView fue llamado en el hilo 'WebViewCoreThread'. Todos los métodos WebView deben ser llamados en el subproceso de la interfaz de usuario. Las versiones futuras de WebView pueden no admitir el uso en otros subprocesos.

Como señala el error .. usted está llamando a los métodos de webview en Thread no UI (dentro de un oyente de clic).

debe utilizar runOnUiThread para utilizar el hilo principal al llamar al método de vista web, dentro de onClick

  MainActivity.this.runOnUiThread(new Runnable(){ @Override public void run() { String value = input.getText().toString(); webView.loadUrl("javascript:window."+funct+"('"+value+"')"); return; } }); 

Como alternativa, puede utilizar Runnable para utilizar WebView en el subproceso de interfaz de usuario y eliminar el problema:

 webView.post(new Runnable() { @Override public void run() { String value = input.getText().toString(); webView.loadUrl("javascript:window."+funct+"('"+value+"')"); } }); 
  • ¿Cómo iniciar una actividad de Android cuando se inicia una aplicación PhoneGap?
  • WebView hace que SQLiteDiskIOException
  • WebView no carga la página web
  • Android: ¿A qué se refiere este mensaje de advertencia? - (WebCore)
  • No se puede cargar la página web con WebView en Android
  • ¿Cómo implementar múltiples webviews cordova en una actividad utilizando fragmentos?
  • Detectar el cambio de ubicación de la URL de webview de Android
  • HTC One X - Webview se convierte en blanco / vacío después del toque
  • Android: Cómo comprobar la carga exitosa de url al usar webview.loadUrl
  • Android: cómo agregar un teclado virtual personalizado cuando se selecciona el campo de formulario en WebView
  • La vista web de Android no reproduce video, jwembedder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.