ericberman / MyFlightbookAndroid

Android client app for MyFlightbook.com
http://myflightbook.com
GNU General Public License v3.0
21 stars 8 forks source link

database crash on first run? #253

Closed ericberman closed 2 years ago

ericberman commented 2 years ago

2021-12-19 10:15:07.604 9277-9277/com.myflightbook.android E/SQLiteLog: (14) cannot open file at line 39583 of [bcd014c473] 2021-12-19 10:15:07.604 9277-9277/com.myflightbook.android E/SQLiteLog: (14) os_unix.c:39583: (2) open(/data/user/0/com.myflightbook.android/databases/mfbAndroid.sqlite) - 2021-12-19 10:15:07.630 9277-9277/com.myflightbook.android E/SQLiteDatabase: Failed to open database '/data/user/0/com.myflightbook.android/databases/mfbAndroid.sqlite'. android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/user/0/com.myflightbook.android/databases/mfbAndroid.sqlite': File /data/user/0/com.myflightbook.android/databases/mfbAndroid.sqlite doesn't exist at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:254) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:919) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:899) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:790) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:737) at Model.DataBaseHelper.checkDataBase(DataBaseHelper.java:115) at Model.DataBaseHelper.createDataBase(DataBaseHelper.java:77) at com.myflightbook.android.MFBMain.initDB(MFBMain.java:281) at com.myflightbook.android.MFBMain.onCreate(MFBMain.java:355) at android.app.Activity.performCreate(Activity.java:8051) at android.app.Activity.performCreate(Activity.java:8031) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:224) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)  at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)  at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)  at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)  at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:919)  at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:899)  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:790)  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:737)  at Model.DataBaseHelper.checkDataBase(DataBaseHelper.java:115)  at Model.DataBaseHelper.createDataBase(DataBaseHelper.java:77)  at com.myflightbook.android.MFBMain.initDB(MFBMain.java:281)  at com.myflightbook.android.MFBMain.onCreate(MFBMain.java:355)  at android.app.Activity.performCreate(Activity.java:8051)  at android.app.Activity.performCreate(Activity.java:8031)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loopOnce(Looper.java:201)  at android.os.Looper.loop(Looper.java:288)  at android.app.ActivityThread.main(ActivityThread.java:7839)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)  2021-12-19 10:15:07.768 9277-9277/com.myflightbook.android E/SQLiteLog: (14) cannot open file at line 39583 of [bcd014c473] 2021-12-19 10:15:07.768 9277-9277/com.myflightbook.android E/SQLiteLog: (14) os_unix.c:39583: (2) open(/data/user/0/com.myflightbook.android/databases/mfbAirports.sqlite) - 2021-12-19 10:15:07.771 9277-9277/com.myflightbook.android E/SQLiteDatabase: Failed to open database '/data/user/0/com.myflightbook.android/databases/mfbAirports.sqlite'. android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/user/0/com.myflightbook.android/databases/mfbAirports.sqlite': File /data/user/0/com.myflightbook.android/databases/mfbAirports.sqlite doesn't exist at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:254) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:919) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:899) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:790) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:737) at Model.DataBaseHelper.checkDataBase(DataBaseHelper.java:115) at Model.DataBaseHelper.createDataBase(DataBaseHelper.java:77) at com.myflightbook.android.MFBMain.initDB(MFBMain.java:301) at com.myflightbook.android.MFBMain.onCreate(MFBMain.java:355) at android.app.Activity.performCreate(Activity.java:8051) at android.app.Activity.performCreate(Activity.java:8031) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:224) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)  at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)  at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)  at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)  at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:919)  at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:899)  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:790)  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:737)  at Model.DataBaseHelper.checkDataBase(DataBaseHelper.java:115)  at Model.DataBaseHelper.createDataBase(DataBaseHelper.java:77)  at com.myflightbook.android.MFBMain.initDB(MFBMain.java:301)  at com.myflightbook.android.MFBMain.onCreate(MFBMain.java:355)  at android.app.Activity.performCreate(Activity.java:8051)  at android.app.Activity.performCreate(Activity.java:8031)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loopOnce(Looper.java:201)  at android.os.Looper.loop(Looper.java:288)  at android.app.ActivityThread.main(ActivityThread.java:7839)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 

ericberman commented 2 years ago

This is completely fine: the way we test if the database needs to be copied is to try opening it and catch any error. This gets logged, even though we are catching the error.