这可能是一个重复的问题,但我已经搜索了很多,但没有得到正确答案
在我的一项活动中,我使用的是2个viewpager,而viewpager的内容来自数据库。
当我启动应用程序并完全执行它并最终关闭它时,活动正常运行,但如果我在打开活动时使我的应用程序背景
并启动5-6个其他应用,然后再次回到此应用我收到此错误
01-10 05:28:48.620: E/SQLiteLog(5770): (14) cannot open file at line 30174 of [00bb9c9ce4]
01-10 05:28:48.620: E/SQLiteLog(5770): (14) os_unix.c:30174: (2) open(//JKBADP.sqlite) -
01-10 05:28:48.625: E/SQLiteDatabase(5770): Failed to open database 'JKBADP.sqlite'.
01-10 05:28:48.625: E/SQLiteDatabase(5770): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at com.winit.dropbox.databaseaccess.DatabaseHelper.openDataBase(DatabaseHelper.java:189)
01-10 05:28:48.625: E/SQLiteDatabase(5770): at com.winit.dropbox.dataaccesslayer.DepartmentDA.getallDepartment(DepartmentDA.java:84)
整个错误太大了,不能在这里发帖所以我只发布了最初的几行,我认为30174行的这个错误是真正的问题
我已将数据库路径和名称保存在单独的类中,字符串变量是静态的。
我已尝试在onresume方法中绑定所有控件和初始化,但这也无济于事。
有人可以帮忙。
由于
答案 0 :(得分:0)
尝试关闭数据库并在恢复时重新打开
@Override
public void onPause() {
super.onPause();
db.close();
}
@Override
public void onResume() {
super.onResume();
db.open();
}
加上您的数据库路径应按以下方式定义:
DB_PATH = "/data/data/"
+ mContext.getPackageName() + "/databases/";
DB_NAME = "DatabaseName"
String mypath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);