-
Notifications
You must be signed in to change notification settings - Fork 648
Description
Describe your environment
- Android Studio version: Android Studio Narwhal 4 Feature Drop | 2025.1.4
- Firebase Component: Firebase Sessions (probably part of Analytics or Crashlytics)
- Component version: Currently BOM 34.2.0 (but this started with version
34.0.0)
Firebase is initialized automatically on the app process creation with the default FirebaseInitProvider that is injected in the manifest, so not controlled by us.
Describe the problem
We are receiving hundreds of ANRs every month during app startup among different OS versions, evenly distributed on many different device kinds.
We have 3 separate reports: 300 users for Android 15, 200 users for Android 14, 200 users for Android 11,12 and 13 together.
The issue resembles slightly similar to a formerly reported one what was claimed to have been resolved last August. So I wonder if it might be connected as these versions were released around that time.
Even if Crashlytics allegedly reports them as background, we've found on similar issues in the past that this a limitation of Crashlytics as these happen during process creation so the Application is not yet created, therefore wrongly classified as background. However the user intention is actually opening the app, so these ANRs negatively impact the application startup time.
Stacktraces are slightly different for each report/OS, so sharing the three of them. Let me know if you need any other information.
Android 15 stacktrace:
main (runnable):tid=1 systid=13705
at kotlinx.coroutines.channels.ChannelKt.Channel(Channel.kt:1443)
at kotlinx.coroutines.channels.ChannelKt.Channel$default(Channel.kt:1425)
at androidx.datastore.core.SimpleActor.<init>(SimpleActor.java:49)
at androidx.datastore.core.DataStoreImpl.<init>(DataStoreImpl.kt:186)
at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:102)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
at com.google.firebase.components.Lazy.get(Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2648)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2616)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
at android.app.ActivityThread.installProvider(ActivityThread.java:8449)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7962)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7630)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2477)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8886)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:681)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:915)
Android 14 stacktrace:
main (runnable):tid=1 systid=32704
at androidx.datastore.core.DataMigrationInitializer$Companion.getInitializer(DataMigrationInitializer.java:32)
at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:108)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
at com.google.firebase.components.Lazy.get(Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2637)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2607)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
at android.app.ActivityThread.installProvider(ActivityThread.java:8110)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7613)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7306)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2356)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:243)
at android.os.Looper.loop(Looper.java:338)
at android.app.ActivityThread.main(ActivityThread.java:8531)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1064)
Android 11,12,13 stacktrace
main (runnable):tid=1 systid=26506
at java.util.Collections$SingletonList.get(Collections.java:5259)
at kotlin.collections.CollectionsKt___CollectionsKt.toList(CollectionsKt___Collections.kt:1329)
at androidx.datastore.core.DataStoreImpl$InitDataStore.<init>(DataStoreImpl.java:425)
at androidx.datastore.core.DataStoreImpl.<init>(DataStoreImpl.kt:176)
at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:102)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
at com.google.firebase.components.Lazy.get(Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2451)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
at android.app.ActivityThread.installProvider(ActivityThread.java:7508)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7019)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6790)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7918)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Steps to reproduce:
Cannot reproduce, only see the impact in Crashlytics.
Relevant Code:
// TODO(you): code here to reproduce the problem