Very new to Java. Working with my app, and decided, I’d drop my DATABASE_VERSION back down to 1 (no real reason).
When I started the app, it crashed, and one of the errors was:
E/AndroidRuntime(14905): Caused by:
android.database.sqlite.SQLiteException: Can’t downgrade database from
version 17 to 4E/AndroidRuntime(14905): at
android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:307)
I already have an onUpgrade(), where I delete the tables then runs the onCreate()… so I thought I’d make an onDowngrade():
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db);
}
But apparently that’s not a superclass method that I can override.
Is there a way (easy way hopefully) to allow me to change the database version to any number I want and have it still run without crashing immediately?
In development, simply get rid of your database, either via the Clear Data button for your app in Settings, or by uninstalling the app from settings, or by wiping the whole emulator (if this is an emulator). Your database will be created anew on next run via a call to
onCreate()in yourSQLiteOpenHelper.In production, as rciovati noted, the concept of supporting a downgrade was only introduced with API Level 11, and I have never tried it personally.