El teléfono sólo se decidió que debía spam una excepción en mi pantalla, que vuelve a abrir tan pronto como me toque de distancia.
Un vistazo a logcat revela los siguientes tirado varias veces por segundo:
SQLiteLog: (14) cannot open file at line 34327 of [605907e73a]
SQLiteLog: (14) os_unix.c:34327: (13) open(/data/user/0/com.android.providers.contacts/databases/contacts2.db-shm) -
SQLiteLog: (14) statement aborts at 1: [PRAGMA user_version;] unable to open database file
SQLiteLog: (14) cannot open file at line 34327 of [605907e73a]
SQLiteLog: (14) os_unix.c:34327: (13) open(/data/user/0/com.android.providers.contacts/databases/contacts2.db-shm) -
AndroidRuntime: FATAL EXCEPTION: Worker-1
AndroidRuntime: Process: android.process.acore, PID: 9149
AndroidRuntime: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(Native Method)
AndroidRuntime: at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:599)
AndroidRuntime: at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:652)
AndroidRuntime: at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107)
AndroidRuntime: at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:842)
AndroidRuntime: at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:830)
AndroidRuntime: at android.database.sqlite.SQLiteDatabase.getVersion(SQLiteDatabase.java:940)
AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:311)
AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:262)
AndroidRuntime: at com.android.providers.contacts.LegacyApiSupport.<init>(LegacyApiSupport.java:499)
AndroidRuntime: at com.android.providers.contacts.ContactsProvider2.initForDefaultLocale(ContactsProvider2.java:1668)
AndroidRuntime: at com.android.providers.contacts.ContactsProvider2.performBackgroundTask(ContactsProvider2.java:1759)
AndroidRuntime: at com.android.providers.contacts.ContactsProvider2$1.onPerformTask(ContactsProvider2.java:1615)
AndroidRuntime: at com.android.providers.contacts.ContactsTaskScheduler$MyHandler.handleMessage(ContactsTaskScheduler.java:77)
AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:65)
Mi conjetura sería que - por cualquier razón - los contactos proveedor se le asigna un IDENTIFICADOR de usuario diferentes, y ahora ha perdido el acceso a su propia base de datos. Me imagino, que si puedo borrar la base de datos el problema se ha ido.
Aún así, no quiero perder mis contactos. Tengo una copia de seguridad, pero que tiene la edad suficiente para decir que me gustaría perder algo. Estoy convencido de que el archivo sigue ahí y yo probablemente puede abrir como archivo sqlite una vez puedo acceder pero no tengo ni idea de cómo lograr esto. Tratando de trabajar con la com.android.providers.contacts
paquete en bad siempre me deja con "el paquete no depurables".
Mi Teléfono es un no-root de Moto G5 Plus running Android 8.1
Es allí una manera de copia de seguridad de mis contactos o se hubieran ido? También: ¿puedo tal vez acaba de quitar el *.db-shm
archivo que parece ser el problema aquí? Que yo recuerde que sólo algunos temp archivo de sqlite de todos modos.