Android ActivityThread.reportSizeConfigurations causes application de gel avec écran noir et puis crash
J'ai un crash de mon application. Il arrive pour beaucoup d'utilisateurs et de ses multiples endroits ActivityThread.java méthode reportSizeConfigurations. Je ne sais pas ce que c'est, et pourquoi elle se fige.
Le gel se produit juste après l'écran de démarrage (lorsque l'activité principale est démarré) et est produit seulement sur la mise à niveau de l'application. Si vous réinstallez l'application, le problème disparaît. Le problème est, je ne peux pas dire à tous les utilisateurs de réinstaller l'application...
Personne ne sait ce qui peut provoquer cela et pourquoi? Il semble peut-être d'être connecté avec quelques DB de la manipulation, mais c'est juste une supposition.
Heres la stacktrace de Crashlytics:
Fatal Exception: java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{a28a055 null}
at android.os.Parcel.readException(Parcel.java:1697)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:8342)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:3049)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2992)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Heres la stacktrace à partir de play store 'ANRs & accidents':
"main" prio=5 tid=1 TimedWaiting
| group="main" sCount=1 dsCount=0 obj=0x74864f70 self=0x7f8b896a00
| sysTid=28578 nice=0 cgrp=default sched=0/0 handle=0x7f8f832a98
| state=S schedstat=( 237746089 66838748 1069 ) utm=18 stm=5 core=6 HZ=100
| stack=0x7fcdbf9000-0x7fcdbfb000 stackSize=8MB
| held mutexes=
at java.lang.Object.wait! (Native method)
- waiting on <0x0c54fb7b> (a java.lang.Object)
at java.lang.Thread.parkFor$ (Thread.java:2127)
- locked <0x0c54fb7b> (a java.lang.Object)
at sun.misc.Unsafe.park (Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
at android.database.sqlite.SQLiteConnectionPool.waitForConnection (SQLiteConnectionPool.java:670)
at android.database.sqlite.SQLiteConnectionPool.acquireConnection (SQLiteConnectionPool.java:348)
at android.database.sqlite.SQLiteSession.acquireConnection (SQLiteSession.java:894)
at android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:586)
at android.database.sqlite.SQLiteProgram.<init> (SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init> (SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query (SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory (SQLiteDatabase.java:1318)
at android.database.sqlite.SQLiteQueryBuilder.query (SQLiteQueryBuilder.java:399)
at android.database.sqlite.SQLiteQueryBuilder.query (SQLiteQueryBuilder.java:294)
at com.norwegian.travelassistant.managers.storagemanager.StorageManager.query (StorageManager.java:1011)
at com.norwegian.travelassistant.managers.storagemanager.StorageManager.a (StorageManager.java:1218)
- locked <0x00f0bd98> (a java.lang.Object)
at com.norwegian.travelassistant.managers.storagemanager.StorageManager.a (StorageManager.java:1205)
at com.norwegian.travelassistant.managers.storagemanager.StorageManager.F (StorageManager.java:1812)
at com.norwegian.travelassistant.managers.e.a (LanguageManager.java:63)
at com.norwegian.travelassistant.managers.e.a (LanguageManager.java:84)
at com.norwegian.travelassistant.tabbar.TabsActivity.onCreate (TabsActivity.java:141)
at android.app.Activity.performCreate (Activity.java:6705)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2664)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2772)
at android.app.ActivityThread.-wrap12 (ActivityThread.java)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1515)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:241)
at android.app.ActivityThread.main (ActivityThread.java:6217)
at java.lang.reflect.Method.invoke! (Native method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)
Veuillez indiquer si vous avez besoin de plus d'info
- On dirait que son connecté à la base de données I/O dans le thread principal. Je n'ai jamais eu ce problème avant, mais peut-être que quelque chose a changé...
- Ma solution était de supprimer et re-intanceiate la base de données. Une vilaine correction, mais il a travaillé. Semblait comme beaucoup d'utilisateurs a obtenu corrompu bases de données avec la publication. Pourquoi, je n'en ai aucune idée...
Vous devez vous connecter pour publier un commentaire.
L'accident est causé par l'ANR sur votre Service, avant le lancement de votre Activité.
Si un utilisateur lance votre application pendant une longue tâche en cours d'exécution dans votre Service, l'Activité ne sera pas créé jusqu'à ce que la tâche sur le service se termine. Cette attente peut paraître bizarre à l'utilisateur au lancement de votre application, et ils puis faites glisser votre app loin dans le task switcher, qui supprime l'enregistrement de la tâche à partir de la ActivityManager (mais le processus est encore maintenu en vie à ce moment).
Lorsque le travail de longue haleine sur le service renvoie enfin, il débloque l'activité de lancement, mais à ce moment, l'activité va jeter
ActivityRecord not found
exception, car il a déjà été supprimé.La suite d'un diagramme de séquence qui pourrait expliquer le crash mieux.
De crédit va à YogiAi, qui a d'abord étudié la question dans ce post.
finish()
dans l'activité deonCreate()
?Il y a un bug ouvert avec Google, semble exclusif à Samsung sur l'application des mises à niveau
https://issuetracker.google.com/issues/62427912
L'une des raisons de ce problème peut être fuite de mémoire.
Dans Houde est blog il écrit l'application qui utilise l'EventBus pour recevoir l'événement pour fermer l'Activité, et un Événement a été l'écriture d'une classe interne, provoqué par une fuite de mémoire.
Fuite de mémoire entraîne l'activité non pas de lancer mais les relancer. Qui provoque le problème par ses paroles.
Un autre problème pourrait être l'Activité de pause/stop/détruire délai d'attente. Il peut conduire à la même