Rozpoczęto uzyskiwanie tego błędu w wersji produkcyjnej mojej aplikacji.Intent.migrateExtraStreamToClipData() na odwołanym obiekcie o wartości zerowej
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference
Nie ma wyraźnego wiersza, w którym to faktycznie występuje, ale ostatnio zmieniłem wersję biblioteki wsparcia na 24.0.0. Oto pełna StackTrace:
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)
EDIT: Chcę również zwrócić uwagę, że 100% użytkowników otrzymuję ten błąd również zakorzenione. Dzieje się tak również w 23.4.0 ... Mam również potencjalny błąd, który pojawił się w tym samym czasie, co ma związek z funkcją Base64.decode w odniesieniu do Firebase.
EDYTOWANIE 2: Otrzymałem pomoc od Androida Dev na drugi dzień. Zasugerowali, że zaktualizuję wersję Usług Google Play mojego projektu i wydaje się, że do tej pory pomogło. Będę czekać jeszcze kilka dni, aby uzyskać wyniki od moich użytkowników, ale początkowe logi są obiecujące.
Poprzednio używałem wersji 9.0.2, ale mam teraz 9.2.0.
EDYCJA 3: Aktualizacja do wersji 9.2.0 nie pomogła awariom. Wciąż dostaję ten sam błąd od zrootowanych użytkowników. Zauważyłem, że u użytkowników powodujących awarie są poniżej Androida 6.0, więc będę testować na urządzeniu na żywo i zaktualizować ASAP.
To samo dzieje się na moim emulatorze. Najpierw dostaję wyskakujące okienko z informacją: ... Korzysta z Usług Google Play, które nie są obsługiwane przez twoje urządzenie. Skontaktuj się z producentem, aby uzyskać pomoc. Spróbuję debugować. – Wirling
@Wirling Teraz, kiedy o tym wspomniałeś, mam pewne podejrzenie, że raporty o błędach pochodzą z urządzeń laboratoryjnych Google Cloud Cloud zamiast z urządzeń mojego użytkownika. Właśnie niedawno zrootowałem moje urządzenie, aby przetestować ten błąd i nie widziałem jeszcze tego. – c0deblooded
Jestem w stanie odtworzyć to za pomocą biblioteki Vision Usług Google Play (9.2). Zrobiłem prosty test, używając metody 'isGooglePlayServicesAvailable' przed uruchomieniem aparatu w celu wykrycia kodu QR. Jeśli nie będzie dostępny, pokażę okno dialogowe z metody 'getErrorDialog'. Spowoduje to awarię podczas próby aktualizacji. Dzieje się tak tylko na urządzeniach zrootowanych. – Brian