LitePal icon indicating copy to clipboard operation
LitePal copied to clipboard

华为在后台一段时间后打开及时查询数据库报错

Open bbbBBBSG opened this issue 5 years ago • 1 comments

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.(SQLiteProgram.java:66) 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:1483) at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1325) at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1196) at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1402) at org.litepal.crud.DataHandler.query(DataHandler.java:135) 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) 

===================================================== 华为安卓10 依赖版本:implementation 'org.litepal.guolindev:core:3.2.2' 场景:本应用是聊天应用,app在后台一段时间后,收到消息弹出通知栏,点击通知栏进到聊天界面,查询数据库崩溃

bbbBBBSG avatar Jan 14 '21 11:01 bbbBBBSG

可以稳定必现吗?因为问题的原因日志上已经给的很清楚了,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这个列。 那么你应该去调查一下这个列是否存在。

guolindev avatar Jan 29 '21 13:01 guolindev