vengo sopra errore indicato su alcuni dispositivi (molto raramente, 2 volte fino ad ora solo):SQLiteDiskIOException: disco I/O error (codice 3850)
android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 3850)
at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:679)
at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:361)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:236)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:200)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
at ***.a(***.java:115)
La linea 115 nel mio codice è il seguente:
// here the exception occurs
SQLiteDatabase db = SQLiteDatabase.openDatabase(pathApp, null, SQLiteDatabase.OPEN_READONLY);
// ...
db.close();
Story
Quello che faccio è la seguente:
- applicazione ha i privilegi di root
- copia il database da un'altra applicazione in essa la propria directory
- si tenta di aprire il database e leggere alcuni dati
- si chiude il file di nuovo
Questo è tutto . Questo sta lavorando su migliaia di dispositivi. La mia app di sicuro accede solo il database in su posto, io sono del tutto sicuro di questo
Domanda
Qualcuno sa che cosa potrebbe causare questo problema?
fattiForse interessanti
- i 2 dispositivi sono un OnePlus2
- un ragazzo mi ha detto che il problema si è verificato dopo l'aggiornamento a ossigeno 2,1
Ricevo improvvisamente segnalazioni da parte dell'utente di questo errore (dal 25 settembre, prima che non apparisse mai). Tutte le istanze sono su un dispositivo ONE e con Android 5.1.1. Forse quel dispositivo ha ricevuto un recente aggiornamento del sistema che ha causato questo? – mike47
i due dispositivi che conosco che sono stati effettuati hanno ottenuto un aggiornamento del sistema ... a Oxygen 2.1 ... Ma non ne so più nulla ... E non ho trovato ancora nulla ... – prom85
Finalmente trovato un soluzione :-). Aggiungi i binari sqlite alla tua app, scopri quale funziona sul dispositivo e DUMP il database sulla console e analizza l'output ... Funziona anche su OnePlus2 – prom85