Таким образом, в настоящее время я сохраняю файлы резервных копий для своей базы данных sqlite на своем веб-сервере, проблема, с которой я сталкиваюсь, заключается в том, что при попытке загрузить и импортировать их в свой текущий телефон я получаю эту ошибку.
database corruption at line 63697 of [c255889bd9]
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) Invalid First byte:0 of page:4
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) Page (4) content:
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) - 00 01 0F D1 00 0F D1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2D 01 08 00 15 0F 0F 17 33 1B 33 2E 30 30 38 32 31 33
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) - 2E 39 35 32 30 31 39 2D 31 30 2D 32 37 20 31 35 3A 31 31 3A 34 39 32 34 37 31 35 39 34 00 00 00
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) database corruption at line 63741 of [c255889bd9]
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/SQLiteLog: (11) statement aborts at 3: [SELECT * FROM table ORDER BY idx DESC] database disk image is malformed
2019-11-07 18:01:20.615 26965-26965/com.my.testapp E/DefaultDatabaseErrorHandler: !@ Corruption reported by sqlite (11) on database: /data/user/0/com.my.testapp/databases/MY_DB
2019-11-07 18:01:20.616 26965-26965/com.my.testapp E/SQLiteLog: (11) Invalid type:0 for page:4
Ноесли я загружаю его на свой компьютер, а затем вручную перемещаю в папку, он импортируется очень хорошо. Что-то еще, что я должен сделать, когда я загружаю это? Вот код, который я использую для загрузки с помощью AsyncTask:
File BACKUP_FILE = new File (contextRef.getExternalFilesDir(null) + "/backup/" + DB_NAME);
if (BACKUP_FILE.exists()) {
if (BACKUP_FILE.delete()){
Log.e("IFS", "Deleting previous backup: " + BACKUP_FILE);
}
}
int count;
byte data[] = new byte[4096];
URL sUrl = new URL(URL_FOR_DOWNLOAD);
HttpURLConnection connection = (HttpURLConnection) sUrl.openConnection();
connection.connect();
input = connection.getInputStream();
output = new FileOutputStream(BACKUP_FILE);
while ((count = input.read(data)) != -1)
{
if (isCancelled()) {
input.close();
return null;
}
output.write(data, 0, count);
}
}catch (Exception e){
Log.e("IFS", "Error 127: " + e.getMessage());
}