hi, recently, I have a prolbem, that my android(4.3) application use sqlite db to store the data. my had two thread visit the db, and offten happen delete db table, so my data lose.
03-18 14:25:04.134 2345-2384/? E/SQLiteLog: (26) statement aborts at 78: [SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1] file is encrypted or is not a database 03-18 14:25:04.144 2345-2384/? E/SQLiteDatabase: Failed to open database '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db'. android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db' to 'zh_CN'. at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:393) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188) at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332) at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256) at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:841) Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26) at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method) at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:641) at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:374) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)? at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)? at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)? at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)? at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)? at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)? at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)? at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)? at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)? at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)? at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)? at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)? at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)? at java.lang.reflect.Method.invokeNative(Native Method)? at java.lang.reflect.Method.invoke(Method.java:525)? at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)? at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)? at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)? at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)? at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)? at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)? at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)? at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)? at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)? at java.lang.Thread.run(Thread.java:841)? 03-18 14:25:04.184 2345-2350/? D/dalvikvm: GC_CONCURRENT freed 4152K, 31% free 15100K/21824K, paused 2ms+8ms, total 47ms 03-18 14:25:04.184 2345-2384/? D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 39ms 03-18 14:25:04.184 2345-2384/? E/SQLiteOpenHelper: Couldn't open citycardconfig.db for writing (will try read-only): android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db' to 'zh_CN'. at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:393) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188) at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332) at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256) at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:841) Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26) at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method) at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:641) at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:374) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)? at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)? at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)? at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)? at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)? at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)? at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)? at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)? at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)? at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)? at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)? at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)? at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)? at java.lang.reflect.Method.invokeNative(Native Method)? at java.lang.reflect.Method.invoke(Method.java:525)? at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)? at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)? at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)? at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)? at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)? at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)? at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)? at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)? at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)? at java.lang.Thread.run(Thread.java:841)? 03-18 14:25:04.194 2345-2384/? E/SQLiteLog: (26) statement aborts at 0: [PRAGMA user_version;] file is encrypted or is not a database 03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: Corruption reported by sqlite on database: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db 03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: deleting the database file: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db 03-18 14:25:04.194 2345-2384/? W/System.err: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(Native Method) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:598) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:652) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:813) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:801) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteDatabase.getVersion(SQLiteDatabase.java:862) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:242) 03-18 14:25:04.194 2345-2384/? W/System.err: at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188) 03-18 14:25:04.194 2345-2384/? W/System.err: at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:525) 03-18 14:25:04.194 2345-2384/? W/System.err: at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332) 03-18 14:25:04.194 2345-2384/? W/System.err: at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256) 03-18 14:25:04.194 2345-2384/? W/System.err: at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 03-18 14:25:04.194 2345-2384/? W/System.err: at java.lang.Thread.run(Thread.java:841) 03-18 14:25:04.194 2345-2384/? I/System.out: START:size 0 and my applicationn db create again . later the db delete again.and always repeated, we restart the device .it ok. please tell me why happen ? thanks lots jinchengzou 2017/03/22 _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users