Sample Header Ad - 728x90

Fix "android.process.acore keeps stopping" when the contacts provider can't load it's db

3 votes
1 answer
839 views
My phone just decided that it should spam an exception onto my screen that reopens as soon as I tap it away. A look at logcat reveals the following being thrown multiple times per second: 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.(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) My guess would be, that - for whatever reason - the contacts provider was assigned a different user ID and has now lost access to it's own database. I would guess, that if I clear the database the issue is gone. Still, I don't want to lose my contacts. I have a backup but that's old enough to say that I would lose some. I'm convinced that the file is still there and I can probably just open it as sqlite file once I gain access but I have no clue on how to achieve this. Trying to work with the com.android.providers.contacts package in adb always leaves me with "package not debuggable". My Phone is a non-rooted Moto G5 Plus running Android 8.1 Is there a way to backup my contacts or are they gone? Also: Can I maybe just remove the *.db-shm file that seems to be the problem here? As far as I remember that's only some temp file for sqlite anyways.
Asked by Link64 (141 rep)
Jan 28, 2019, 05:25 PM
Last activity: Jan 28, 2019, 05:55 PM