android.database.sqlite.SQLiteException:无法将只读数据库从版本29升级到27

时间:2013-05-19 21:00:24

标签: android sqlite

我有点火高清设备。当我尝试打开网络浏览器(从家里)时,它很明显无法启动。

我检查了日志,发现“android.database.sqlite.SQLiteException:无法将只读数据库从版本29升级到27:/data/data/com.amazon.cloud9/databases/browser.db”

sqlite存储数据库的版本号,可以在创建数据库时设置一次。之后你可以更改版本,但是会调用onUpgrade或onDowngrade这两个方法中的一个。

将数据库版本更改为您想要的任何数字并使其在不立即崩溃的情况下运行的简单方法是清除缓存,因为它将清除数据库并在下次运行时通过调用重新创建您的数据库在SQLiteOpenHelper中使用onCreate()而不必担心版本冲突。

您可以清除数据以解决问题,因为将重新创建数据库。但我们最好不要求用户清除数据,因为用户可能会有一些他们不想清除的书签。

还有其他解决方法吗?我的意思是任何代码建议都赞赏:)

以下是SQLiteOpenHelper.java中抛出SQLiteException的代码片段:

 try {
239             mIsInitializing = true;
240             String path = mContext.getDatabasePath(mName).getPath();
241             db = SQLiteDatabase.openDatabase(path, mFactory, SQLiteDatabase.OPEN_READONLY,
242                     mErrorHandler);
243             if (db.getVersion() != mNewVersion) {
244                 throw new SQLiteException("Can't upgrade read-only database from version " +
245                         db.getVersion() + " to " + mNewVersion + ": " + path);
246             }

文件名:android.database.sqlite.SQLiteOpenHelper.java

0 个答案:

没有答案