support recyclerview library android android-intent android-support-library

recyclerview - com.android.support:design 26



Intent.migrateExtraStreamToClipData() en una referencia de objeto nulo (3)

Comencé a obtener este error en la versión de producción de mi aplicación.

java.lang.NullPointerException: Attempt to invoke virtual method ''boolean android.content.Intent.migrateExtraStreamToClipData()'' on a null object reference

No hay una línea clara en la que esto ocurra, pero recientemente cambié la versión de la biblioteca de soporte a 24.0.0. Aquí está la stacktrace completa:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method ''boolean android.content.Intent.migrateExtraStreamToClipData()'' on a null object reference at android.app.Instrumentation.execStartActivity(Instrumentation.java:1494) at android.app.Activity.startActivityForResult(Activity.java:3745) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) at android.app.Activity.startActivityForResult(Activity.java:3706) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871) at com.google.android.gms.common.internal.zzi$1.zztD(Unknown Source) at com.google.android.gms.common.internal.zzi.onClick(Unknown Source) at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

EDITAR: También quiero señalar que el 100% de los usuarios que reciben este error también están enraizados. Esto también ocurre en 23.4.0 ... También tengo un posible error relacionado que apareció al mismo tiempo que tiene que ver con la función Base64.decode en relación con Firebase.

EDIT 2: recibí ayuda de un desarrollador de Android el otro día. Sugirieron que actualice la versión de Servicios de Google Play de mi proyecto y parece que me ayudó hasta ahora. Esperaré unos días más para obtener los resultados de mis usuarios, pero los registros iniciales son prometedores.

Anteriormente estaba usando 9.0.2 pero ahora estoy en 9.2.0.

EDIT 3: La actualización a 9.2.0 no ayudó a los bloqueos. Todavía recibo el mismo error de los usuarios rooteados. He notado que los usuarios que obtienen bloqueos están por debajo de Android 6.0, por lo que voy a probar en un dispositivo en vivo y actualizar lo antes posible.


Esta pregunta es un poco vieja, pero solo quería compartir una actualización sobre ella. De acuerdo con github.com/google/gcm/issues/209 el problema debería resolverse en Google Play Services versión 9.4.0 . La respuesta aceptada debería funcionar también (como un parche intermedio), pero si actualiza su biblioteca de Servicios de Google Play, este problema debería resolverse.


Parece que el error ocurre en los dispositivos donde los Servicios de Google Play no están instalados, el intento pasado será nulo.

Puede asegurarse de que el intento pasado no sea nulo anulando el método startActivityForResult en su actividad.

@Override public void startActivityForResult(Intent intent, int requestCode) { if (intent == null) { intent = new Intent(); } super.startActivityForResult(intent, requestCode); }


eso realmente funciona

@Override public void startActivityForResult(Intent intent, int requestCode) { try { super.startActivityForResult(intent, requestCode); } catch (Exception ignored){} }