0

当我尝试打开网络浏览器(在家中使用 Kindle fire HD)时,它根本无法启动。我检查了设备日志,发现以下异常:

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

我用谷歌搜索了这个异常,发现下面的代码片段抛出了这个异常。有人可以对此进行清楚的解释。我需要为此做些什么

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

2 回答 2

0

私人最终诠释 mNewVersion;

public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { if (version < 1) throw new IllegalArgumentException("Version must be >= 1, was " + version); if (errorHandler == null) { throw new IllegalArgumentException("DatabaseErrorHandler 参数值不能为空。"); }

          mContext = context;
          mName = name;
          mFactory = factory;
          mNewVersion = version;
          mErrorHandler = errorHandler;
     }
于 2013-05-19T16:24:22.010 回答
0

您可以提供更多背景信息,尤其是因为 Kindle 产品运行的是 Android 的一个分支。

关于来源,我只能找到 tarball:

http://www.amazon.com/gp/help/customer/display.html?nodeId=200203720&tag=viglink121875-20

你是怎么得到上面显示的源代码的(请链接)?

该代码表示​​它根本不准备支持不同数据库版本之间的升级。

在您的场景中必须做的是从版本 29 升级到 27,这将是降级。

于 2013-05-19T16:25:22.220 回答