Проблема с импортом базы данных в Android Pie?

Я использую базу данных предварительной загрузки с несколькими таблицами, в которых данные уже присутствуют во всех таблицах. Моя ошибка logcat показывает «нет такой таблицы: торт (код 1 SQLITE_ERROR): при компиляции: выберите * из торта в», но на самом деле таблица и ее данные уже есть.

Я также проверил скопированную базу данных в телефоне, она была там, но в коде отображается ошибка выше.

Как решить эту проблему??

Примечание. Эта ошибка возникает только в Google Pixel Phone.

См. этот пост stackoverflow: Android P SQLite Pragma Log.


person Sarika Dudhat    schedule 08.09.2018    source источник
comment
Добро пожаловать в Stack Overflow. Обязательно внимательно прочитайте сообщение об ошибке. Также покажите минимальный пример, вызывающий эту ошибку.   -  person Rahul Chokshi    schedule 08.09.2018
comment
Поместил ли файл вашей базы данных в папку с ресурсами в каталоге с именем базы данных _1_   -  person Code-Apprentice    schedule 08.09.2018
comment
у меня есть базы данных в папке с ресурсами, нужно ли мне создавать базы данных?   -  person Rahul Chokshi    schedule 08.09.2018
comment
Я столкнулся с той же проблемой. Мое приложение работало до Android P. Я знаю, что таблицы есть, но я получаю то же самое исключение sqlite, говорящее, что таких таблиц нет. Если вы найдете решение, пожалуйста, напишите мне.   -  person Ahmad Arslan    schedule 03.10.2018
comment
Здесь есть решение: stackoverflow.com/questions/50476782/   -  person Luis    schedule 05.10.2018
comment
Решение, которое в итоге сработало для меня, находится здесь: stackoverflow.com/a/51953955/1172181   -  person Luis    schedule 05.10.2018
comment
Сообщение об ошибке вводит в заблуждение. Я получаю ту же ошибку, но знаю, что таблицы существуют, и приложение отлично работало на предыдущих версиях Android.   -  person Luis    schedule 05.10.2018


Ответы (3)


Отключите ведение журнала упреждающей записи в методе SQLiteOpenHelper onOpen, например:

Из вашего журнала ошибок.

@Override
public void onOpen(SQLiteDatabase db) {
    super.onOpen(db);
    db.disableWriteAheadLogging();
}
person Luis    schedule 05.10.2018

нет такой таблицы: торт (код 1 SQLITE_ERROR): , при компиляции: выберите * из торта в

Упоминается, что таблицы с именем cake не существует. Поэтому перед извлечением значения из таблицы убедитесь, что в базе данных уже существует таблица с таким именем.

Создайте таблицу и назовите ее «торт». Согласно журналу ошибок.

person Tejas Pandya    schedule 08.09.2018
comment
Он покажет, даже если таблица существует, это происходит только в круговой диаграмме. - person Luis; 05.10.2018

введите здесь описание изображения

нет такой таблицы «торт». Я думаю, вы забыли поместить свою базу данных в папку с активами.

Спасибо

вроде есть знатный _1_ по logcat

person Sana    schedule 08.09.2018
comment
AndroidRuntime: НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.ebizzapps.swadishtcookingrecipesinhindi, PID: 9060 java.lang.RuntimeException: невозможно запустить активность SQLiteException: нет такой таблицы: торт (код 1 SQLITE_ERROR): при компиляции: выберите * из торта в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048 ) в android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) в android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java: 68) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) в android.os.H andler.dispatchMessage(Handler.java:106) в android.os.Looper.loop(Looper.java:193) в android.app.ActivityThread.main(ActivityThread.java:6669) в java.lang.reflect.Method.invoke (Собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Вызвано: android.database .sqlite.SQLiteException: нет такой таблицы: торт (код 1 SQLITE_ERROR): при компиляции: выберите * из торта в android.database.sqlite.SQLiteConnection.nativePrepareStatement(собственный метод) в android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection .java:903) в android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514) в android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) в android.database.sqlite.SQLiteProgram.(SQLiteProgram .java:58) в andr oid.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37) в android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46) в android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1408) в android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1347) на com.ebizzapps.swadishtcookingrecipesinhindi.DBHelper.getDatas(DBHelper.java:162) на com.ebizzapps.swadishtcookingrecipesinhindi. DetailRecipe.onCreate(DetailRecipe.java:161) в android.app.Activity.performCreate(Activity.java:7136) в android.app.Activity.performCreate(Activity.java:7127) в android.app.Instrumentation.callActivityOnCreate(Instrumentation .java:1271) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) в android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java: 78) в android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) в android.app.ActivityThread$H.handleMessage(ActivityThread.java :1808) в android.os.Handler.dispatchMessage(Handler.java:106) в android.os.Looper.loop(Looper.java:193) в android.app.ActivityThread.main(A ctivityThread.java:6669) в java.lang.reflect.Method.invoke(собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) в com.android.internal.os. ZygoteInit.main(ZygoteInit.java:858) - person Guru raj; 28.03.2019