firebase-android-sdk icon indicating copy to clipboard operation
firebase-android-sdk copied to clipboard

StrictMode DiskReadViolation on initialization

Open alexeyr15 opened this issue 3 years ago • 3 comments
trafficstars

Describe your environment

  • Android Studio version: Android Studio Chipmunk | 2021.2.1 Patch 1
  • Firebase Component: Crashlytics
  • Component version: 18.2.11

Describe the problem

There are multiple StrictMode DiskReadViolation observable during Firebase Crashlytics initialization:

StrictMode policy violation; ~duration=131 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at android.app.ContextImpl.getDataDir(ContextImpl.java:2539)
        at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:626)
        at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:853)
        at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:475)
        at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:188)
        at com.google.firebase.installations.local.IidStore.<init>(IidStore.java:61)
        at com.google.firebase.installations.FirebaseInstallations.<init>(FirebaseInstallations.java:139)
        at com.google.firebase.installations.FirebaseInstallationsRegistrar.lambda$getComponents$0(FirebaseInstallationsRegistrar.java:41)
        at com.google.firebase.installations.FirebaseInstallationsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:0)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.AbstractComponentContainer.get(AbstractComponentContainer.java:27)
        at com.google.firebase.components.ComponentRuntime.get(ComponentRuntime.java:45)
        at com.google.firebase.components.RestrictedComponentContainer.get(RestrictedComponentContainer.java:89)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:55)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
StrictMode policy violation; ~duration=131 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:681)
        at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:672)
        at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:628)
        at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:853)
        at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:475)
        at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:188)
        at com.google.firebase.installations.local.IidStore.<init>(IidStore.java:61)
        at com.google.firebase.installations.FirebaseInstallations.<init>(FirebaseInstallations.java:139)
        at com.google.firebase.installations.FirebaseInstallationsRegistrar.lambda$getComponents$0(FirebaseInstallationsRegistrar.java:41)
        at com.google.firebase.installations.FirebaseInstallationsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:0)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.AbstractComponentContainer.get(AbstractComponentContainer.java:27)
        at com.google.firebase.components.ComponentRuntime.get(ComponentRuntime.java:45)
        at com.google.firebase.components.RestrictedComponentContainer.get(RestrictedComponentContainer.java:89)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:55)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
StrictMode policy violation; ~duration=130 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at android.app.ContextImpl.getDataDir(ContextImpl.java:2539)
        at android.app.ContextImpl.getFilesDir(ContextImpl.java:715)
        at android.content.ContextWrapper.getFilesDir(ContextWrapper.java:253)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.<init>(FileStore.java:71)
        at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:75)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
StrictMode policy violation; ~duration=130 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:681)
        at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:672)
        at android.app.ContextImpl.getFilesDir(ContextImpl.java:717)
        at android.content.ContextWrapper.getFilesDir(ContextWrapper.java:253)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.<init>(FileStore.java:71)
        at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:75)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
StrictMode policy violation; ~duration=130 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.prepareBaseDir(FileStore.java:186)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.<init>(FileStore.java:76)
        at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:75)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
StrictMode policy violation; ~duration=129 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:250)
        at java.io.File.isDirectory(File.java:845)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.prepareBaseDir(FileStore.java:187)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.<init>(FileStore.java:76)
        at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:75)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
StrictMode policy violation; ~duration=129 ms: android.os.strictmode.DiskReadViolation
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
        at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
        at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
        at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7533)
        at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
        at java.io.File.exists(File.java:815)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.prepareBaseDir(FileStore.java:186)
        at com.google.firebase.crashlytics.internal.persistence.FileStore.<init>(FileStore.java:77)
        at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:75)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar.$r8$lambda$Pfd5XmDCFzNyAT9o9H6rDnTBQE4(Unknown Source:0)
        at com.google.firebase.crashlytics.CrashlyticsRegistrar$$ExternalSyntheticLambda0.create(Unknown Source:2)
        at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:132)
        at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
        at com.google.firebase.components.Lazy.get(Lazy.java:53)
        at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:291)
        at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:281)
        at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:594)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:305)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:269)
        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:254)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Steps to reproduce:

Add the following code to the custom Application class to observe the mentioned violations in the log:

    override fun attachBaseContext(base: Context?) {
        StrictMode.setThreadPolicy(
            StrictMode.ThreadPolicy.Builder()
                .detectAll()
                .penaltyLog()
                .build()
        )
        super.attachBaseContext(base)
    }

alexeyr15 avatar Jun 08 '22 07:06 alexeyr15

Thanks for reporting, @alexey-rabets. I was able to reproduce the same issue. I'll notify an engineer to see what we can do here. Thanks!

argzdev avatar Jun 08 '22 10:06 argzdev

Crashlytics relies on these disk reads because of the way it ensures all information captured during the last crash is processed and uploaded properly. These disk reads don't happen on the main thread so shouldn't affect your app in any significant way, unless a crash loop is detected. You can avoid the verbose log output by calling permitDiskReads() on the strict mode builder.

mrober avatar Jun 29 '22 18:06 mrober

It looks like all these file IO operations captured by StrictMode are performed on the main thread on every cold app start even if there were no crashes and may potentially affect apps. For the example given in this issue, reported duration of these operaitons on the main thread is about 130 ms.

alexeyr15 avatar Jun 30 '22 03:06 alexeyr15

The file operation is part of a check that Crashlytics does to ensure the app has launched successfully. This increases reliability of crash reporting for apps that crash on launch. We are considering alternative approaches that would avoid the disk read violation. Internal tracking for feature request b/256604997.

mrober avatar Oct 31 '22 14:10 mrober