Sqlite файл зашифрован или нет базы данных на Android - PullRequest
0 голосов
/ 07 марта 2011

У меня есть приложение, использующее sqlite на Android. Все отлично работает, могу без проблем создавать, читать и писать базы данных. НО, если я изменю исходный код в eclipse (не важно, что, пока он перекомпилируется), новый apk будет создан и отправлен в эмулятор Доступ к базе данных теперь приведет к

enter code here03-07 15:50:03.886: ERROR/AndroidRuntime(311): Caused by: android.database.sqlite.SQLiteException: file is encrypted or is not a database

Удаление файла базы данных с помощью проводника и доступ к базе данных воссоздает БД, и все снова в порядке.

Я уверен, что БД закрывается после каждого доступа.

1 Ответ

0 голосов
/ 03 октября 2011

Я тоже нашел эту ошибку!И, наконец, я решил создать файл БД из моего приложения, выполнив такой код:

public class MyHelperSqliteHelper extends SQLiteOpenHelper{



       // SQL to generate USER table
        String sqlCreate = "CREATE TABLE 'user' " +
                "('X_id' INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , " +
                "'D_name' VARCHAR);";

        ...

        @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL(sqlCreate);
        }catch (SQLException e) {
            e.printStackTrace();
        }

    }
        ...
}

Следующим шагом является экспорт этого файла из представления DDMS в файл и открытие этого файла с помощью менеджера SQLite.Здесь вы можете импортировать все свои данные и другие таблицы.

Последний шаг - нужно только экспортировать эту базу данных из SQLiteManager, и если вы откроете этот файл, вы увидите, что он зашифрован.это временное решение, но оно может решить эту проблему, и вам нужно сделать это только один раз и не более.

Удачи!

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