Почему getWritableDatabase вылетает на некоторых устройствах? (sqlite3_open_v2 ... Failed)
Мое приложение использует базу данных и работает довольно хорошо на всех устройствах Android.
Недавно некоторые пользователи указали, что он вылетает на HTC Tattoo. Я решил попробовать и получил один в кредит.
Итак, ошибка возникает, когда я вызываю: this.getWritableDatabase();
09-27 18:26:22.292: ERROR/Database(1537): sqlite3_open_v2("/data/data/com.xxx.xxx/databases/radars.db", &handle, 6, NULL) failed
09-27 18:26:22.292: WARN/System.err(1537): android.database.sqlite.SQLiteException: unable to open database file
И я проверил, База данных находится в устройстве:
Я действительно не могу понять, что происходит....
Большое спасибо за вашу помощь!
РЕДАКТИРОВАТЬ:
Как заметил LAS_VEGAS
# sqlite3 /data/data/com.xxx.xxx/databases/radars.db
Дает этот результат:
sqlite3: not found
Похоже, у HTC Tattoo серьезные проблемы с SQL:
adb shell
# cd / system / xbin
# ls | grep sqlite3//Ничего такого//
1 ответ
Это странно Я думаю, что это может произойти, когда вы пытаетесь получить доступ к файлу базы данных из нескольких потоков одновременно. Может ли это быть так?
Также для целей тестирования вы пробовали getReadableDatabase()
, может быть, это дает подсказку...
РЕДАКТИРОВАТЬ:
Можете ли вы получить доступ из удаленной оболочки?:
http://developer.android.com/guide/developing/tools/adb.html
EDIT2:
Так что, похоже, у HTC tattoo нет sqlite3.