amplitude / amplitude/Amplitude-Android

StrictMode policy violation on initialize

Aperta
#190 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Java
Stelle
169
Fork
87
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

We've StrictMode enabled in our app and we see the following policy violation:
```
StrictMode policy violation; ~duration=301 ms: android.os.strictmode.DiskReadViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1504)
at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:251)
at java.io.File.exists(File.java:815)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:605)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:596)
at android.app.ContextImpl.getDatabasesDir(ContextImpl.java:835)
at android.app.ContextImpl.getDatabasePath(ContextImpl.java:814)
at android.content.ContextWrapper.getDatabasePath(ContextWrapper.java:327)
at com.amplitude.api.DatabaseHelper.(DatabaseHelper.java:80)
at com.amplitude.api.DatabaseHelper.getDatabaseHelper(DatabaseHelper.java:64)
at com.amplitude.api.AmplitudeClient.initialize(AmplitudeClient.java:228)
at com.amplitude.api.AmplitudeClient.initialize(AmplitudeClient.java:202)
at .(AmplitudeClient.kt:22)
```

As seen in https://github.com/amplitude/Amplitude-Android/blob/master/src/com/amplitude/api/AmplitudeClient.java#L252 the database is opened in the thread calling the initialize.

Is there any chance that DB initialization could be moved inside the `runOnLogThread` to avoid accessing disk?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.