4

Javaは非常に新しいです。アプリを操作して、DATABASE_VERSIONを1に戻すことにしました(本当の理由はありません)。

アプリを起動するとクラッシュし、エラーの1つは次のとおりでした。

E / AndroidRuntime(14905):原因:android.database.sqlite.SQLiteException:データベースをバージョン17から4にダウングレードできません

E / AndroidRuntime(14905):android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:307)で

私はすでにを持っていますonUpgrade()、そこで私はテーブルを削除してから実行します...だから私は:onCreate()を作ると思いましたonDowngrade()

@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    onUpgrade(db);
}

しかし、どうやらそれは私がオーバーライドできるスーパークラスのメソッドではありません。

データベースのバージョンを任意の数に変更して、すぐにクラッシュすることなく実行できるようにする方法(うまくいけば簡単な方法)はありますか?

4

1 に答える 1

10

データベースのバージョンを任意の数に変更して、すぐにクラッシュすることなく実行できるようにする方法(うまくいけば簡単な方法)はありますか?

開発では、[設定]でアプリの[データを消去]ボタンを使用するか、設定からアプリをアンインストールするか、エミュレーター全体(エミュレーターの場合)をワイプすることで、データベースを削除します。データベースは、の呼び出しを介して次回の実行時に新たに作成さonCreate()れますSQLiteOpenHelper

本番環境では、rciovatiが指摘したように、ダウングレードをサポートするという概念はAPIレベル11でのみ導入され、私はそれを個人的に試したことがありません。

于 2012-07-06T16:50:22.617 に答える