【发布时间】:2021-08-07 01:52:06
【问题描述】:
我很沮丧。我正在寻找几个小时的解决方案....
@Database(entities = {User.class, Driver.class}, version = 1, exportSchema = true)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase instance;
static AppDatabase getDatabase(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context, AppDatabase.class, "mytest.db").createFromAsset("databases/mytest.db") .build();
}
return instance;
}
public abstract UserDao userDao();
}
还有:
@Entity(tableName = "Driver",
indices = {@Index(value = {"driverName"},unique = true), @Index(value = {"drivingLicNum"},unique = true)}
)
public class Driver {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
@NotNull
private int id;
@ColumnInfo(name = "firstName")
@NotNull
private String firstName;
@ColumnInfo(name = "lastName")
@NotNull
private String lastName;
@ColumnInfo(name = "driverName")
@NotNull
private String driverName;
//optionale Parameter
@ColumnInfo(name = "birthDate")
@TypeConverters(Converters.class)
private Date birthDate;
@ColumnInfo(name = "drivingLicNum")
private String drivingLicNum;
@ColumnInfo(name = "drivingLicExpDate")
@TypeConverters(Converters.class)
private Date drivingLicExpDate;
@ColumnInfo(name = "gender")
@TypeConverters(Converters.class)
private Gender gender;
@ColumnInfo(name = "issuingAuthority")
private String issuingAuthority;
@ColumnInfo(name = "licCategory")
@TypeConverters(Converters.class)
private ArrayList<LicenceCategory> licCategory;
@ColumnInfo(name = "isActive", defaultValue = "1")
@NotNull
private boolean isActive;
@ColumnInfo(name = "profilePic")
private byte[] profilePic;
public Driver(@NotNull String firstName, @NotNull String lastName, @NotNull String driverName) {
this.firstName = firstName;
this.lastName = lastName;
this.driverName = driverName;
licCategory = new ArrayList<>();
setIsActive(true);
}
}
还有:
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
@ColumnInfo( name="uid")
@NotNull
public int uid;
@ColumnInfo(name = "first_name")
public String firstName;
@ColumnInfo(name = "last_name")
public String lastName;
public User( String firstName, String lastName){//,//int field4){
this.firstName = firstName;
this.lastName = lastName;
}
}
当我尝试创建/加载数据库时,我总是收到上述错误。 我已经尝试过的事情:
- 更改
version=1 to version=2 - 将
exportSchema更改为false - 删除应用并重新安装
- 正在尝试
fallbackToDestructiveMigration() - 在我的 SQLLite 浏览器中更改版本号
- 提到的尝试解决方案here
没有一个解决方案能解决我的问题,我越来越绝望了。我错过了一些重要的步骤吗?
【问题讨论】:
标签: android sqlite android-room database-migration indices