NullPointerException en Cordova App reportado por Fabric SDK

Estoy utilizando el marco de Ionic para construir la aplicación híbrida de Android y la aplicación funciona bien. Estoy usando el complemento de Analytics de Crash de tela y su informe de los fallos de la aplicación.

Estoy consiguiendo los detalles abajo del desplome muy a menudo y no seguro cuál es la razón de la misma. No estoy seguro de cuál sería el punto de partida para comenzar a analizar esto.

Fatal Exception: java.lang.NullPointerException at android.webkit.WebViewClassic.setNetworkAvailable(WebViewClassic.java:4224) at android.webkit.WebView.setNetworkAvailable(WebView.java:731) at org.apache.cordova.engine.SystemWebViewEngine$1.setNetworkAvailable(SystemWebViewEngine.java:112) at org.apache.cordova.NativeToJsMessageQueue$OnlineEventsBridgeMode$2.run(NativeToJsMessageQueue.java:340) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5319) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(NativeStart.java) 

¿Está relacionado con algún plugin o cualquier problema en Ionic o Cordvoa? Cualquier ayuda o consejo sería útil.

¿Podrías tragar la excepción? Editar este archivo:

/platforms/android/CordovaLib/src/org/apache/cordova/engineChange/SystemWebViewEngine.java

Y cambia esto

 webView.setNetworkAvailable(value); 

a esto

 import java.lang.NullPointerException; ... try { webView.setNetworkAvailable(value); } catch (NullPointerException e) { Log.d(TAG, "webView.setNetworkAvailable called after destroy"); } 

No es realmente una solución, pero dada la dificultad de reproducir localmente, puede ser una opción a considerar.

Tengo el mismo problema. También uso Cordova y Fabric Crashlytics.

Se reproduce sólo en Android 4.1.2, 4.2.2, 4.3.

He reproducido el error:

  1. Abrir WebView con contenido que contenga funciones javascript;
  2. Abra el nuevo WebView y ciérrelo;
  3. Desactivar la red (wifi y móvil) tan pronto como sea posible;
  4. Volver a la aplicación y mostrar stacktrace.

He encontrado una solución:

No estoy usando CordovaActivity en mi aplicación. Estoy usando CordovaInterface. PluginManager asociado con WebView eliminado continúa llamando a sus métodos. Así que la llamada manual WebView.handleDestroy () para destruir PluginManager.

En mi fragmento:

 @Override public void onDestroy() { if (webView != null) { webView.handleDestroy(); webView.destroy(); webView = null; } super.onDestroy(); } 

Actualización: Se reproduce cuando se destruye WebView, pero PluginManager sigue viva y envía eventos javascripts a suscriptores (WebViews). Porque llamo WebView.handleDestroy ().

Mi solución estaba en SystemWebViewEngine.java.

  1. Cambio protected final SystemWebView webView; Para protected SystemWebView webView;

  2. En el método destroy() después de

if (receiver != null) { try { webView.getContext().unregisterReceiver(receiver); } catch (Exception e) { Log.e(TAG, "Error unregistering configuration receiver: " + e.getMessage(), e); } }

añadir

webView = null;

  1. Reemplazar webView.setNetworkAvailable(value); con

    if (webView != null) webView.setNetworkAvailable(value);

  • No es posible instalar dígitos del complemento Fabric en la aplicación android
  • Inicio de Twitter de Twitter de React-Native para Android
  • Android: agregando imagen al tweet usando la API REST de tela, Twitter y Retrofit
  • Los dígitos de la tela devuelven un objeto nulo de phoneNumber después de la verificación de OTP en la aplicación android
  • ¿Cómo usar AppCompatActivity con Fabric para obtener Timeline?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.