首页 文章

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

提问于
浏览
2

我正在使用具有多个表的预加载数据库,其中所有表中的表中都已存在数据 . 我的错误logcat显示“没有这样的表:cake(代码1 SQLITE_ERROR):,同时编译:select * from cake at”但实际上是表,它的数据已经存在 .

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

如何解决这个问题呢??

注意:此错误仅在Google Pixel Phone中发生..

AndroidRuntime:FATAL EXCEPTION:main进程:com.ebizzapps.swadishtcookingrecipesinhindi,PID:9060 java.lang.RuntimeException:无法启动活动ComponentInfo {com.ebizzapps.swadishtcookingrecipesinhindi / com.ebizzapps.swadishtcookingrecipesinhindi.DetailRecipe}:android.database.sqlite .SQLiteException:没有这样的表:cake(代码1 SQLITE_ERROR):,同时编译:select * from cake at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 3048)在Android.app.ser.Tra.action.emp.Rymp响应事件中,android.app.servert事件中的android.app.servertransaction.LaunchActivityItem.exe执行(LaunchActivityItem.java:78)处于android.app.servert事件中的事务处理器事务处理事务处:68)在Android.app.Loper.loop(Looper.java:193)的android.app.Handler.dispatchMessage(Handler.java:106)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)在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)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)引起:android.database.sqlite.SQLiteException:没有这样的表:cake(代码1 SQLITE_ERROR):,编译时:select * from cake at在android.dtml上的android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514)上的android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903)中的android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) . 在android.database.sqlite.SQLiteProgram上的database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) . 在Android.database的android.database.sqlite.SQLiteQuery . (SQLiteQuery.java:37)上的SQLiteProgram.java:58 android.database.sqlite.SQLiteDatabase.rawQueryWithFacto中的.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46) ry(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)在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.ActThread $ .handleMessage(ActivityThread.java)上的android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) . 1808)在android.os.Hand ler.dispatchMessage(Handler.java:106)位于android.app.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

    从您的错误日志 .

    没有这样的表:cake(代码1 SQLITE_ERROR):,编译时:select * from cake at

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

  • 0

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

    enter image description here

    没有这样的表“蛋糕” . 我想你忘了把你的数据库放到资产文件夹 .

    谢谢

  • 0

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

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

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

相关问题