我开发了在我的公司中使用的应用程序。当我尝试安装更新的应用程序时出现此错误。错误发生在这行代码:
SQLiteDatabase db = SQLiteOpenHelperDAO.getInstance(context).getReadableDatabase();
我把 try/catch 放在那里,错误消息显示“无法打开数据库文件”
logCat 告诉我:
04-02 11:50:38.626: I/Database(16526): sqlite returned: error code = 14, msg = cannot open file at source line 25467
04-02 11:50:38.626: E/Database(16526): sqlite3_open_v2("/data/data/myappPackage/databases/mydb.db", &handle, 6, NULL) failed
04-02 11:50:38.642: E/SQLiteOpenHelper(16526): Couldn't open mydb.db for writing (will try read-only):
然后我得到了Force close。
这是我的getInstance方法
public static synchronized SQLiteOpenHelperDAO getInstance(Context context) {
if (helper == null) {
helper = new SQLiteOpenHelperDAO(context);
}
if (dbRefCounter > 1000)
dbRefCounter = 0;
else
dbRefCounter++;
Log.i(TAG, "Return new reference to mPos database. Current number of references=" + String.valueOf(dbRefCounter));
return helper;
}
我有大约 3 台设备进行测试,当我尝试升级应用程序时,这个错误总是只发生在三星设备上,但它适用于我的索尼 XSL 和中国 Android 平板电脑。
我不知道如何解决这个问题。请帮助问候。