Android ActivityThread.reportSizeConfigurations causes the application to freeze with a black screen and then crash

I had a crash in my application. This happens for many users and several places in the ActivityThread.java reportSizeConfigurations method. I do not know what it is used for and why it hangs.

Freezing occurs immediately after the splash screen (when the main activity starts) and occurs only when the application is updated. If you reinstall the application, the problem will disappear. The problem is that I cannot tell all users to reinstall the application ...

Does anyone know what might cause this and why? This seems to be related to some kind of DB processing, but this is just an assumption.

Gets a stack 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) 

Gets a stack from the game store "ANRs and 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.ea (LanguageManager.java:63) at com.norwegian.travelassistant.managers.ea (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) 

Tell me if you need more information.

+7
android crash crashlytics
source share
1 answer

The accident is caused by ANR on your Service, before the launch of your activity.

If a user launches your application during a long-term task in your Service, the action will not be created until the service task is completed. This expectation may seem strange to the user launching your application, and then they will host your application in the task switcher, which removes the task entry from the ActivityManager (but the process is still in progress).

When the long-term service task finally returns, it unlocks the activity at startup, but at that time the action will raise an ActivityRecord not found exception, because it has already been deleted.

The following sequence diagram may better explain the collapse. enter image description here

The credit goes to YogiAi, who originally explored the issue in this post .

+9
source share

All Articles