Почему 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.

Другие вопросы по тегам