j256 / ormlite-android

ORMLite Android functionality used in conjunction with ormlite-core
http://ormlite.com/
ISC License
1.59k stars 366 forks source link

getReadWriteConnection: SQLiteCantOpenDatabaseException unknown error (Sqlite code 14): Could not open database, (OS error - 13:Permission denied) #118

Open ron-k-tb opened 3 years ago

ron-k-tb commented 3 years ago

On some Android devices (Huawei Y6II running Android 6), I'm encountering a rare exception while trying to use RuntimeExceptionDao.iterator():

Stack trace: Caused by android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (Sqlite code 14): Could not open database, (OS error - 13:Permission denied) at android.database.sqlite.SQLiteConnection.nativeOpen(SQLiteConnection.java) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:217) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:201) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:493) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:194) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:183) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:826) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:810) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:713) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:652) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:235) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:175) at com.j256.ormlite.android.AndroidConnectionSource.getReadWriteConnection(AndroidConnectionSource.java:68) at com.j256.ormlite.android.AndroidConnectionSource.getReadOnlyConnection(AndroidConnectionSource.java:55) at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243) at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:217) at com.j256.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:1095) at com.j256.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:551) at com.j256.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:540) at com.j256.ormlite.dao.RuntimeExceptionDao.iterator(RuntimeExceptionDao.java:403) [application code stack - omitted as per corporate policy] at android.os.Handler.handleCallback(Handler.java:743) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5659) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)

library version: com.j256.ormlite:ormlite-android:5.1

A solution or any leads would be highly appreciated.