我正在将预加载数据库与多个表一起使用,所有表中的表中都已存在数据。 我的错误 logcat 显示“没有这样的表:cake(代码 1 SQLITE_ERROR):,编译时:select * from cake at”,但实际上表及其数据已经存在。
我还检查了手机中复制的数据库,它在那里,但在代码中显示了上面的错误。
如何解决这个问题?
注意:此错误仅发生在 Google Pixel 手机中。
AndroidRuntime: FATAL EXCEPTION: main Process: com.ebizzapps.swadishtcookingrecipesinhindi, PID: 9060 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebizzapps.swadishtcookingrecipesinhindi/com.ebizzapps.swadishtcookingrecipesinhindi.DetailRecipe}: android.database.sqlite.SQLiteException: no such table: cake (code 1 SQLITE_ERROR): , while compiling: select * from cake at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.database.sqlite.SQLiteException: no such table: cake (code 1 SQLITE_ERROR): , while compiling: select * from cake at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37) at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46) at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1408) at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1347) at com.ebizzapps.swadishtcookingrecipesinhindi.DBHelper.getDatas(DBHelper.java:162) at com.ebizzapps.swadishtcookingrecipesinhindi.DetailRecipe.onCreate(DetailRecipe.java:161) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
最佳答案
请参阅此 stackoverflow 帖子:Android P SQLite Pragma Log .
禁用 SQLiteOpenHelper 的 onOpen 方法上的预写日志记录,如下所示:
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
db.disableWriteAheadLogging();
}
关于android - Android Pie 中的数据库导入问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52232143/