Android Pie中的数据库导入有问题吗?

时间:2018-09-08 04:57:59

标签: android android-database

我正在将Preload Database与多个表一起使用,而所有表中的表中都已经存在数据。 我的错误logcat显示“没有这样的表:cake(代码1 SQLITE_ERROR):,而编译时:从cake at选择*”,但实际上表及其数据已经存在。

我还检查了Phone中复制的数据库,它在那里,但是在代码中显示上面的错误。

如何解决这个问题?

注意:此错误仅在Google Pixel Phone中出现。

  

AndroidRuntime:致命异常:主要       流程:com.ebizzapps.swadishtcookingrecipesinhindi,PID:9060       java.lang.RuntimeException:无法启动活动ComponentInfo {com.ebizzapps.swadishtcookingrecipesinhindi / com.ebizzapps.swadishtcookingrecipesinhindi.DetailRecipe}:   android.database.sqlite.SQLiteException:没有这样的表:cake(代码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.Handler.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:否这样的表:cake(代码1 SQLITE_ERROR):,而在编译时:选择* from   蛋糕           在android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native   方法)           在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)           在android.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(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)

3 个答案:

答案 0 :(得分:1)

请参阅此stackoverflow帖子:Android P SQLite Pragma Log

禁用您的 SQLiteOpenHelper onOpen 方法的预写日志记录,如下所示:

@Override
public void onOpen(SQLiteDatabase db) {
    super.onOpen(db);
    db.disableWriteAheadLogging();
}

答案 1 :(得分:0)

创建一个表并将其命名为“ cake”。根据错误日志

enter image description here

没有这样的表“ cake”。我想您已经忘记了将数据库放置到资产文件夹中。

谢谢

答案 2 :(得分:0)

从您的错误日志中。

  

没有这样的表:蛋糕(代码1 SQLITE_ERROR):,正在编译:选择   *来自蛋糕

它提到没有名称为cake的表。因此,在从表中获取值之前,请确保数据库中已经存在具有该名称的表。