当我尝试打开网络浏览器(从Kindle fire HD中的家中)时,它显然无法启动。 我检查了设备日志,可以找到以下异常:
android.database.sqlite.SQLiteException:无法将只读数据库从版本29升级到27
我用Google搜索了异常并发现以下代码片段引发了此异常。有人可以清楚地解释一下这个问题。我需要为此做些什么
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);
}
答案 0 :(得分:0)
private final int mNewVersion;
public SQLiteOpenHelper(Context context,String name,CursorFactory factory,int version, DatabaseErrorHandler errorHandler){ if(version< 1)抛出新的IllegalArgumentException(“版本必须> = 1,是”+版本); if(errorHandler == null){ 抛出新的IllegalArgumentException(“DatabaseErrorHandler param值不能为null。”); }
mContext = context;
mName = name;
mFactory = factory;
mNewVersion = version;
mErrorHandler = errorHandler;
}
答案 1 :(得分:0)
你可以提供更多的上下文,特别是因为Kindle产品正在运行Android的分支。
关于来源,我只能找到tarball:
http://www.amazon.com/gp/help/customer/display.html?nodeId=200203720&tag=viglink121875-20
您是如何获得上面显示的源代码的(请链接)?
代码表示它根本不准备支持不同数据库版本之间的升级。
在您的方案中需要做的是从版本29升级到27,这将是降级。