I have a crash in my app. It happens for a lot of users and its multiple places in ActivityThread.java method reportSizeConfigurations. I dont know what this is used for, and why it freezes.
The freeze happens right after the splash screen (when the main activity is started) and is only happening on upgrading of the app. If you reinstall the application the problem goes away. Problem is, I cant tell all the users to reinstall the application...
Does anyone know what might cause this and why? It seems maybe to be connected with some DB handling, but thats just a guess.
Heres the stacktrace from 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 the stacktrace from play store 'ANRs & crashes':
"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)
Please tell if you need more info
The crash is caused by the ANR on your Service, prior to the launch of your Activity.
If a user launches your app during a long-running task in your Service, the Activity will not be created until the task on the service finishes. This waiting might look bizarre to the user launching your app, and they then swipe your app away in the task switcher, which removes the task record from the ActivityManager (but process is still kept alive at this time).
When the long-running task on the service finally returns, it unblocks the activity from launching, but at this time the activity will throw ActivityRecord not found
exception because it was removed already.
The following sequence diagram might explain the crash better.
Credit goes to YogiAi, who originally investigated the issue in this post.
There is a bug opened with Google, seems exclusive to Samsung on app upgrades
https://issuetracker.google.com/issues/62427912
One of reasons of this problem can be - memory leak. In Houde's blog he writes the app that uses EventBus to receive the event to close the Activity, and an Event was writing an internal class, that caused by a memory leak.
Memory leak causes activity not no launch but relaunch. That causes problem by his words.
Another problem could be Activity pause/stop/destroy timeout. It can lead to the same
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With