Использование существующей базы данных SQLite в Android - PullRequest
0 голосов
/ 17 августа 2011

Моя проблема в использовании существующей базы данных sqlite в моем приложении для Android. Для управления я использовал известную статью, в которой описана моя задача - http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications

Пока запускается это приложение, я получаю сообщение об ошибке:

08-17 06:35:18.416: ERROR/Database(286): sqlite3_open_v2("data/data/com.jeston.existed.sqlite/databases/android_test_db.db", &handle, 1, NULL) failed
08-17 06:35:18.437: ERROR/AndroidRuntime(286): Uncaught handler: thread main exiting due to uncaught exception
08-17 06:35:18.457: ERROR/AndroidRuntime(286): android.database.sqlite.SQLiteException: unable to open database file 

Я подозреваю, что я использую неверный путь к моей базе данных. Я записал свой файл android_test_db в папку assets и, как написано в блоге, дал

private final static String DB_PATH = "data/data/com.jeston.existed.sqlite/databases/";
private final static String DB_NAME = "android_test_db.db";

Итак, мой вопрос: эти пути правильные или нет? или может быть, я нахожусь на неправильном пути общего?

спасибо всем.

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Расширение имени БД должно быть точно таким же, как оно есть. Более того, я думаю, что ваша главная проблема в том, что вы указали неправильный пакет. Это должен быть корневой пакет. Попробуйте это:

private final static String DB_PATH = "data/data/com.jeston.existed/databases/";
0 голосов
/ 17 августа 2011

метод openDataBase должен выглядеть следующим образом:

 public void openDataBase() throws SQLException{
    //Open the database
    String myPath = DB_PATH + DB_NAME;
    myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
}

использовать SQLiteDatabase.NO_LOCALIZED_COLLATORS вместо SQLiteDatabase.OPEN_READONLY

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...