Ошибка базы данных sqlite "нет такой таблицы" в Android P - PullRequest
0 голосов
/ 01 июня 2018

Я использую SQLiteOpenHelper для чтения базы данных из активов.он работает на всех версиях Android, но Android p.

это моя функция copyDataBase:

 private static void copyDataBase() throws IOException {
        InputStream myInput = myContext.getAssets().open(DB_NAME);
        String outFileName = DB_PATH + DB_NAME;
        OutputStream myOutput = new FileOutputStream(outFileName);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }
        myOutput.flush();
        myOutput.close();
        myInput.close();
        SharedPreferences shData = myContext.getSharedPreferences("data", 0);
        SharedPreferences.Editor editor = shData.edit();
        editor.putBoolean("databaseIsOnMemory", true);
        editor.commit();
    }

я вставил журнал в эту функцию, и он прошел через это.но я получаю эту ошибку:

android.database.sqlite.SQLiteException: no such table: irancell (code 1 SQLITE_ERROR)

вот как я получаю данные:

c = myDataBase.query(true, Table_Name, new String[] {IDData,TextData},
    null,null,null,null,null, null);
c.moveToFirst();
int i = 1;
while(!c.isAfterLast()){
    list.add(new KharidBaste(c.getInt(0),c.getString(5)));
    c.moveToNext();
    i++;
}

и ошибка в строке: "c.moveToFirst ();"

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

В вашей функции createDB вы должны добавить this.close () после this.getReadableDatabase ()

this.getReadableDatabase();
this.close();

Эта ссылка может помочь вам

0 голосов
/ 01 июня 2018

Проверьте имя таблицы в вашей базе данных.Это может быть по-другому.И помните, что имя таблицы чувствительно к регистру.Например, имя таблицы Employee и employee не совпадают.Поэтому проверьте имя таблицы.

...