Я следовал приведенным инструкциям для введения существующей базы данных SQLite в ваше приложение для Android.
Когда я запрашиваю таблицу "android_metadata", это нормально. Но когда я выполняю аналогичный запрос к моей собственной таблице «слова» (в которой есть первичный целочисленный ключ _id), я получаю исключение таблицы, и приложение вылетает.
Почему это?
Код:
Cursor c = myDatabase.query("android_metadata", null, null, null, null, null, null, null);
работает, но
Cursor c = myDatabase.query("words", null, null, null, null, null, null, null);
возвращает таблицу не существует исключение.
Вот как я создаю базу данных (ссылки на пути и имена файлов верны):
private void copyDatabase() throws IOException
{
//Open local db as the input stream
InputStream myInput = mContext.getAssets().open(DB_NAME);
//Path to the just created empty db
String outFileName = DB_PATH + DB_NAME;
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length = 0;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}
(Примечание. На мой взгляд, таблица есть. Я смотрю на нее прямо в браузере SQLite.)