华为在后台一段时间后打开及时查询数据库报错
2021-01-14 19:22:24.511 14790-14790/com.dahai.wechat E/CrashReport: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dahai.wechat/com.dahai.wechat.ui.chat.ChatNewActivity}: org.litepal.exceptions.LitePalSupportException: no such column: room (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT * FROM chatfrienddb WHERE room = ?, (OS error - 2:No such file or directory)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3961)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:8178)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: org.litepal.exceptions.LitePalSupportException: no such column: room (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT * FROM chatfrienddb WHERE room = ?, (OS error - 2:No such file or directory)
at org.litepal.crud.DataHandler.query(DataHandler.java:156)
at org.litepal.crud.QueryHandler.onFind(QueryHandler.java:159)
at org.litepal.FluentQuery.find(FluentQuery.java:235)
at org.litepal.FluentQuery.find(FluentQuery.java:198)
at com.dahai.wechat.ui.chat.ChatNewActivity.getParam(ChatNewActivity.java:281)
at com.dahai.wechat.ui.chat.ChatNewActivity.afterViews(ChatNewActivity.java:294)
at com.dahai.wechat.ui.base.BaseNoToolbarActivity.onCreate(BaseNoToolbarActivity.java:46)
at android.app.Activity.performCreate(Activity.java:8086)
at android.app.Activity.performCreate(Activity.java:8074)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3755)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3961)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:8178)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: android.database.sqlite.SQLiteException: no such column: room (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT * FROM chatfrienddb WHERE room = ?, (OS error - 2:No such file or directory)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1032)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:639)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:610)
at android.database.sqlite.SQLiteProgram.
===================================================== 华为安卓10 依赖版本:implementation 'org.litepal.guolindev:core:3.2.2' 场景:本应用是聊天应用,app在后台一段时间后,收到消息弹出通知栏,点击通知栏进到聊天界面,查询数据库崩溃
可以稳定必现吗?因为问题的原因日志上已经给的很清楚了,no such column: room (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT * FROM chatfrienddb WHERE room = ?, (OS error - 2:No such file or directory),找不到room这个列。 那么你应该去调查一下这个列是否存在。