android: allowBackup = "true" ภายใน AndroidManifest.xml ป้องกันไม่ให้ล้างข้อมูลแม้ว่าจะถอนการติดตั้งแอปแล้วก็ตาม
เพิ่มสิ่งนี้ในรายการของคุณ:
android:allowBackup="false"
และติดตั้งแอปใหม่
หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนกลับเป็นจริงในภายหลังหากคุณต้องการสำรองข้อมูลอัตโนมัติ
วิธีแก้ปัญหาอื่น:
ตรวจสอบ identityHash ของไฟล์ json เก่าของคุณและไฟล์ json ใหม่ในโฟลเดอร์ apps \ schema
หาก identityHash แตกต่างกันก็จะให้ข้อผิดพลาดนั้น ค้นหาสิ่งที่คุณเปลี่ยนแปลงโดยการเปรียบเทียบไฟล์ json ทั้งสองไฟล์หากคุณไม่ต้องการเปลี่ยนแปลงอะไร
ตรวจสอบว่าคุณมี exportSchema = true
@Database(entities = {MyEntity.class, ...}, version = 2, exportSchema = true)
ไฟล์สคีมา json:
"formatVersion": 1,
"database": {
"version": 2,
"identityHash": "53cc5ef34d2ebd33c8518d79d27ed012",
"entities": [
{
รหัส:
private void checkIdentity(SupportSQLiteDatabase db) {
String identityHash = null;
if (hasRoomMasterTable(db)) {
Cursor cursor = db.query(new SimpleSQLiteQuery(RoomMasterTable.READ_QUERY));
try {
if (cursor.moveToFirst()) {
identityHash = cursor.getString(0);
}
} finally {
cursor.close();
}
}
if (!mIdentityHash.equals(identityHash) && !mLegacyHash.equals(identityHash)) {
throw new IllegalStateException("Room cannot verify the data integrity. Looks like"
+ " you've changed schema but forgot to update the version number. You can"
+ " simply fix this by increasing the version number.");
}
}