Dopo aver aggiunto l'uscita ed entrare transizioni di attività ad un app, sto ottenendo segnalazioni di crash come la seguente:EnterTransitionCoordinator provoca NPE in Android 5.0
irreversibile: java.lang.NullPointerException: Tentativo di richiamare metodo virtuale 'android.view.ViewParent android.view.View.getParent()' su un oggetto nullo di riferimento su android.view.ViewOverlay $ OverlayViewGroup.add (ViewOverlay.java:164) su android.view.ViewGroupOverlay.add (ViewGroupOverlay.java:63) a android.app.EnterTransitionCoordinator.startRejectedAnimations (EnterTransitionCoordinator.java:598) 01.235.164,106174 millionsa android.app.EnterTransitionCoordinator.startSharedElementTransition (EnterTransitionCoordinator.java:325) a android.app.EnterTransitionCoordinator.access $ 200 (EnterTransitionCoordinator.java:42) a android.app.EnterTransitionCoordinator $ 5 $ 1.run (EnterTransitionCoordinator.java:389) a android.app.ActivityTransitionCoordinator.startTransition (ActivityTransitionCoordinator.java:698) a android.app.EnterTransitionCoordinator $ 5.onPreDraw (EnterTransitionCoordinator.java:386) a android.view.ViewTreeObserver.dispatchOnPreDraw (ViewTreeObserver.java:847) su android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1985) su android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1077) su android.view.Vi ewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:5845) su android.view.Choreographer $ CallbackRecord.run (Choreographer.java:767) su android.view.Choreographer.doCallbacks (Choreographer.java:580) su Android. view.Choreographer.doFrame (Choreographer.java:550) su android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:753) su android.os.Handler.handleCallback (Handler.java:739) su Android. os.Handler.dispatchMessage (Handler.java:95) su android.os.Looper.loop (Looper.java:135) su android.app.ActivityThread.main (ActivityThread.java:5272) su java.lang. reflect.Method.invoke (Method.java) a java.lang.reflect.Method.invoke (Method.java:372) a com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:909) a com.android.internal.os.ZygoteInit.main (ZygoteInit.java:704)
Non è riproducibili, ma il conteggio incidente è significativo.
Facendo qualche ricerca, mi sono imbattuto in questo commit nel quale viene (era in realtà) un errore interno in Android: https://android.googlesource.com/platform/frameworks/base/+/83c692efd3c53050fce132dfd2ef21763d3cf010%5E%21/#F0
Tutte le segnalazioni di crash sono o 5.0, 5.0.1 o 5.0.2. Perché 5.1 ha maggiore diffusione, ma non mostra si blocca, sembra che EnterTransitionCoordinator è stato fissato a 5,1.
Quindi, una possibile soluzione sarebbe quella di controllare il livello di API 22 o superiore, e solo le transizioni poi. Tuttavia mi chiedo se c'è un modo migliore; qualche soluzione forse, nonostante questo sembra essere una questione interna di Android (tutte le classi di sistema nello stack)?
Penso che il Play Store abbia lo stesso controllo per 5.1. – vRallev
Succede con tutto il cellulare? Non riesco a riprodurlo con un emulatore (genymotion) con la versione 5.0.x –
Non è realmente riproducibile. Tieni d'occhio i rapporti sugli arresti anomali se si applica alla tua app. –