Skip to content

[Bug]: StrictMode DiskReadViolation violation on Android #1033

Open
@xunreal75

Description

@xunreal75

What happened?

We see lot of strict mode violations on Appstart on Android devices

Following is to see in LogCAT

StrictMode policy violation; ~duration=558 ms: android.os.strictmode.DiskReadViolation
These times are really to long ... other entries have only times up to 20ms

Steps to reproduce?

Create an iOS App and launch

add 

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads()
                .detectDiskWrites()
                .detectAll()
                .penaltyLog()
                .build());
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .penaltyDeath()
                .build());

        super.onCreate(savedInstanceState);

to Mainactivity on create

What did you expect to happen?

I expect to avoid these violations and decreasing accesstimes - because in my case location service can't start forgroundservices and an ANR is reported.

OneSignal Flutter SDK version

Release 5.3.2 and 5.30 tested

Which platform(s) are affected?

  • iOS
  • Android

Relevant log output

2025-05-13 15:31:57.994 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=580 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at libcore.io.BlockGuardOs.access(BlockGuardOs.java:74)
                                                                                                    	at libcore.io.ForwardingOs.access(ForwardingOs.java:128)
                                                                                                    	at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:8917)
                                                                                                    	at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:332)
                                                                                                    	at java.io.File.exists(File.java:829)
                                                                                                    	at android.app.ContextImpl.getDataDir(ContextImpl.java:3359)
                                                                                                    	at android.content.ContextWrapper.getDataDir(ContextWrapper.java:290)
                                                                                                    	at com.onesignal.core.internal.preferences.PreferenceStoreFix.ensureNoObfuscatedPrefStore(PreferenceStoreFix.kt:24)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:198)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
2025-05-13 15:31:57.996 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=579 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at libcore.io.BlockGuardOs.access(BlockGuardOs.java:74)
                                                                                                    	at libcore.io.ForwardingOs.access(ForwardingOs.java:128)
                                                                                                    	at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:8917)
                                                                                                    	at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:332)
                                                                                                    	at java.io.File.exists(File.java:829)
                                                                                                    	at com.onesignal.core.internal.preferences.PreferenceStoreFix.ensureNoObfuscatedPrefStore(PreferenceStoreFix.kt:31)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:198)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
2025-05-13 15:31:57.998 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=579 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:301)
                                                                                                    	at java.io.File.isDirectory(File.java:859)
                                                                                                    	at com.onesignal.core.internal.preferences.PreferenceStoreFix.ensureNoObfuscatedPrefStore(PreferenceStoreFix.kt:31)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:198)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
2025-05-13 15:31:58.003 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=558 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at libcore.io.BlockGuardOs.access(BlockGuardOs.java:74)
                                                                                                    	at libcore.io.ForwardingOs.access(ForwardingOs.java:128)
                                                                                                    	at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:8917)
                                                                                                    	at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:332)
                                                                                                    	at java.io.File.exists(File.java:829)
                                                                                                    	at android.app.ContextImpl.getDataDir(ContextImpl.java:3359)
                                                                                                    	at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:764)
                                                                                                    	at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:1004)
                                                                                                    	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:597)
                                                                                                    	at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:230)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.getSharedPrefsByName(PreferencesService.kt:234)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.get(PreferencesService.kt:134)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.getString(PreferencesService.kt:42)
                                                                                                    	at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:170)
                                                                                                    	at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
                                                                                                    	at com.onesignal.core.internal.config.ConfigModelStore.<init>(ConfigModelStore.kt:8)
                                                                                                    	at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                    	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                    	at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:523)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
2025-05-13 15:31:58.009 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=558 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at libcore.io.BlockGuardOs.access(BlockGuardOs.java:74)
                                                                                                    	at libcore.io.ForwardingOs.access(ForwardingOs.java:128)
                                                                                                    	at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:8917)
                                                                                                    	at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:332)
                                                                                                    	at java.io.File.exists(File.java:829)
                                                                                                    	at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:819)
                                                                                                    	at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:810)
                                                                                                    	at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:766)
                                                                                                    	at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:1004)
                                                                                                    	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:597)
                                                                                                    	at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:230)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.getSharedPrefsByName(PreferencesService.kt:234)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.get(PreferencesService.kt:134)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.getString(PreferencesService.kt:42)
                                                                                                    	at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:170)
                                                                                                    	at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
                                                                                                    	at com.onesignal.core.internal.config.ConfigModelStore.<init>(ConfigModelStore.kt:8)
                                                                                                    	at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                    	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                    	at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:523)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
2025-05-13 15:31:58.012 31092-31092 StrictMode              de....enight.bladenight_app_flutter  D  StrictMode policy violation; ~duration=556 ms: android.os.strictmode.DiskReadViolation
                                                                                                    	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666)
                                                                                                    	at android.app.SharedPreferencesImpl.awaitLoadedLocked(SharedPreferencesImpl.java:275)
                                                                                                    	at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:301)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.get(PreferencesService.kt:138)
                                                                                                    	at com.onesignal.core.internal.preferences.impl.PreferencesService.getString(PreferencesService.kt:42)
                                                                                                    	at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:170)
                                                                                                    	at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
                                                                                                    	at com.onesignal.core.internal.config.ConfigModelStore.<init>(ConfigModelStore.kt:8)
                                                                                                    	at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                    	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                    	at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
                                                                                                    	at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
                                                                                                    	at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:523)
                                                                                                    	at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.initWithContext(OneSignalPlugin.java:98)
                                                                                                    	at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:81)
                                                                                                    	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
                                                                                                    	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9063)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions