Java 没有这样的表:当前用户(代码1)没有更改数据库名称

Java 没有这样的表:当前用户(代码1)没有更改数据库名称,java,android,sqlite,Java,Android,Sqlite,我的数据库中首先有一个1(一)表。然后,我意识到我将在该数据库中添加另一个表 @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE if not exists profile (" + "email text primary key not null, " + "username text, " + "profil

我的数据库中首先有一个1(一)表。然后,我意识到我将在该数据库中添加另一个表

@Override
public void onCreate(SQLiteDatabase db) {
    String sql = "CREATE TABLE if not exists profile (" +
            "email text primary key not null, " +
            "username text, " +
            "profilePicture text, " +
            "about text)";
    db.execSQL(sql);

    sql = "CREATE TABLE if not exists current_user (" +
            "email text)";
    db.execSQL(sql);

    sql = "INSERT INTO current_user(email)" +
            "VALUES ('')";
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String sql = "DROP TABLE IF EXISTS profile";
    db.execSQL(sql);
    sql = "DROP TABLE IF EXISTS current_user";
    db.execSQL(sql);

    onCreate(db);
}
当我想更新我当前用户的电子邮件时,它会向我发送一个异常

public void setCurrentEmail(String email){
    ContentValues rsValues = new ContentValues();
    rsValues.put("email", email);

    database.update("current_user", rsValues, null, null);
}

no such table: current_user (code 1):
其他人说,您必须更改数据库的名称才能使其工作,但
有其他选择吗?

如果在更新SQLiteOpenHelper类的代码后未卸载应用程序,则必须卸载
只有在第一次创建数据库时才会调用
onCreate()
方法。因此,现在数据库中没有表
current_user


从设备或模拟器上卸载应用程序,以便删除数据库并重新启动。

如果要保留数据,请实现
onUpgrade()
。如果您不介意丢失数据库数据,请卸载并重新安装works。