Почему getWritableDatabase вылетает на некоторых устройствах? (sqlite3_open_v2 ... Failed) - PullRequest
2 голосов
/ 27 сентября 2011

Мое приложение использует базу данных и работает довольно хорошо на всех устройствах 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

И я проверил, база данныхв устройстве:

enter image description here

Я действительно не могу понять, что происходит ....

Большое спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

Как заметил 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 Ответ

1 голос
/ 27 сентября 2011

Это странно. Я думаю, что это может произойти, когда вы пытаетесь получить доступ к файлу базы данных из нескольких потоков одновременно. Может ли это быть дело?

Также для тестирования вы пробовали getReadableDatabase(), возможно, это дает подсказку ...

EDIT:
Можете ли вы получить доступ из удаленной оболочки?:
http://developer.android.com/guide/developing/tools/adb.html#sqlite

EDIT2:
Так что, похоже, что у HTC tattoo нет sqlite3.

...