首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlite降级

Sqlite降级
EN

Stack Overflow用户
提问于 2013-11-05 10:39:07
回答 1查看 5.3K关注 0票数 6

最近我更新了我的android游戏,在我的表中添加了新字段,编辑sqlite数据库。更新后,我收到了4份崩溃报告(其中3份来自三星Galaxy S4)。

android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) android.database.sqlite.SQLiteException:不能将数据库从版本2降为1

我真的不明白是什么原因,当它甚至可以开始降级数据库,而它实际上需要升级在我的上一个数据库。

在更新过程中,我明显地将DATABASE_VERSION值从1增加到2。

我没有覆盖onDowngrade方法,我的onUpgrade如下所示:

代码语言:javascript
复制
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
    updateToVersion2(db, oldVersion, newVersion);
}

private void updateToVersion2(SQLiteDatabase db, int oldVersion, int newVersion)
{
    if (oldVersion <= 1)
    {
        ContentValues cv1 = new ContentValues();
        cv1.put(FIELD_WORLD_ID, 6);
        cv1.put(FIELD_MAX_UNLOCKED, 1);
        db.insert(TABLE_LEVELS, null, cv1);
    }
}

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 10:51:35

问题是,您没有覆盖onDowngrade方法。正如在javadoc中所解释的,您需要这样做,否则您将得到一个异常:

如果不重写,默认实现将拒绝降级并抛出SQLiteException。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19786988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档