第30174行出错

时间:2014-01-10 12:16:55

标签: android android-sqlite sqliteopenhelper

这可能是一个重复的问题,但我已经搜索了很多,但没有得到正确答案

在我的一项活动中,我使用的是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方法中绑定所有控件和初始化,但这也无济于事。

有人可以帮忙。

由于

1 个答案:

答案 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);