Ошибка "Room cannot verify the data integrity"

Рейтинг: 0Ответов: 0Опубликовано: 13.03.2023

Ошибка:

2023-03-12 20:31:15.965 19709-19709/com.example.myapplication E/ImeBackDispatcher: Ime callback not found. Ignoring unregisterReceivedCallback. callbackId: 206664551
2023-03-12 20:31:26.587 19709-20007/com.example.myapplication E/StudioTransport: JVMTI error: 79(JVMTI_ERROR_UNMODIFIABLE_CLASS) 
2023-03-12 20:33:55.557 20346-20462/com.example.myapplication E/StudioTransport: JVMTI error: 79(JVMTI_ERROR_UNMODIFIABLE_CLASS) 
2023-03-12 20:33:59.988 20346-20433/com.example.myapplication E/StudioProfiler: Studio Profilers encountered an unexpected error. Consider reporting a bug, including logcat output below.
    See also: https://developer.android.com/studio/report-bugs.html#studio-bugs
    
    No such field
    java.lang.NoSuchFieldException: No field mServedInputConnectionWrapper in class Landroid/view/inputmethod/InputMethodManager; (declaration of 'android.view.inputmethod.InputMethodManager' appears in /system/framework/framework.jar!classes3.dex)
        at java.lang.Class.getDeclaredField(Native Method)
        at com.android.tools.profiler.support.profilers.EventProfiler$InputConnectionHandler.run(EventProfiler.java:269)
        at java.lang.Thread.run(Thread.java:1012)
2023-03-12 20:34:04.962 20346-20346/com.example.myapplication E/ImeBackDispatcher: Ime callback not found. Ignoring unregisterReceivedCallback. callbackId: 206664551
2023-03-12 20:41:38.660 20634-20675/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0
    Process: com.example.myapplication, PID: 20634
    java.lang.RuntimeException: Exception while computing database live data.
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:74)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0)
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: java.lang.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. Expected identity hash: 2bfb96692c4ea84ee392a75a0d47dbcc, found: 92c88e6f005b58b9d42d215909b60c2a
        at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:147)
        at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:128)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:279)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:427)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:231)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:189)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
        at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:629)
        at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:448)
        at androidx.room.RoomDatabase.query(RoomDatabase.kt:477)
        at androidx.room.util.DBUtil.query(DBUtil.kt:75)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:224)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:221)
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:72)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0) 
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) 
        at java.lang.Thread.run(Thread.java:1012) 
2023-03-12 20:42:01.608 20739-20766/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0
    Process: com.example.myapplication, PID: 20739
    java.lang.RuntimeException: Exception while computing database live data.
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:74)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0)
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: java.lang.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. Expected identity hash: 2bfb96692c4ea84ee392a75a0d47dbcc, found: 92c88e6f005b58b9d42d215909b60c2a
        at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:147)
        at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:128)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:279)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:427)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:231)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:189)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
        at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:629)
        at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:448)
        at androidx.room.RoomDatabase.query(RoomDatabase.kt:477)
        at androidx.room.util.DBUtil.query(DBUtil.kt:75)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:224)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:221)
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:72)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0) 
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) 
        at java.lang.Thread.run(Thread.java:1012) 
2023-03-12 20:45:22.205 20815-20844/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0
    Process: com.example.myapplication, PID: 20815
    java.lang.RuntimeException: Exception while computing database live data.
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:74)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0)
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: java.lang.IllegalStateException: Migration didn't properly handle: listdb0(com.example.myapplication.list).
     Expected:
    TableInfo{name='listdb0', columns={list=Column{name='list', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, namelist=Column{name='namelist', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='undefined'}}, foreignKeys=[], indices=[]}
     Found:
    TableInfo{name='listdb0', columns={}, foreignKeys=[], indices=[]}
        at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.kt:94)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.kt:252)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:231)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:189)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
        at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:629)
        at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:448)
        at androidx.room.RoomDatabase.query(RoomDatabase.kt:477)
        at androidx.room.util.DBUtil.query(DBUtil.kt:75)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:224)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:221)
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:72)
            ... 5 more
2023-03-12 20:45:43.788 20886-20915/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0
    Process: com.example.myapplication, PID: 20886
    java.lang.RuntimeException: Exception while computing database live data.
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:74)
        at androidx.room.RoomTrackingLiveData.$r8$lambda$PhMGW5zFk4QWazERd2lfEeLZqW0(Unknown Source:0)
        at androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: java.lang.IllegalStateException: Migration didn't properly handle: listdb0(com.example.myapplication.list).
     Expected:
    TableInfo{name='listdb0', columns={list=Column{name='list', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, namelist=Column{name='namelist', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='undefined'}}, foreignKeys=[], indices=[]}
     Found:
    TableInfo{name='listdb0', columns={}, foreignKeys=[], indices=[]}
        at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.kt:94)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.kt:252)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:231)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:189)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
        at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:629)
        at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:448)
        at androidx.room.RoomDatabase.query(RoomDatabase.kt:477)
        at androidx.room.util.DBUtil.query(DBUtil.kt:75)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:224)
        at com.example.myapplication.listdbDao_Impl$8.call(listdbDao_Impl.java:221)
        at androidx.room.RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.kt:72)
            ... 5 more

Entity:

@Entity(tableName = "listdb0")
data class list(
    @PrimaryKey(autoGenerate = true)
    var id: Int? = null,
    @ColumnInfo(name="namelist")
    var namelist: String,
    @ColumnInfo(name="list")
    var list: MutableMap<Boolean,String>
) : Serializable

Dao:

@Dao
interface listdbDao {
    @Insert
    suspend fun insertlist(list: list)
    @Update
    suspend fun updatelist(list: list)
    @Delete
    suspend fun deletelist(list: list)
    @Query("SELECT * FROM listdb0")
    suspend fun getAlllists(): List<list>
    @Query("SELECT * FROM listdb0")
    fun getAlllistsLivedata(): LiveData<List<list>>
}

Database:

@Database(
    entities = [list::class],
    version = 1,
//    autoMigrations = [
//        AutoMigration(from=1,to=2),
//
//    ],
    exportSchema = true
)
@TypeConverters(dictconverter::class)
abstract class listsdb : RoomDatabase() {
    abstract fun gdao(): listdbDao
    companion object{
        private var db : listsdb? = null
        fun listdbfunc(context: Context): listsdb{
            if (db==null){
                db = Room.databaseBuilder(
                    context.applicationContext,
                    listsdb::class.java,
                    "notes.db"
                ).build()
            }
            return db!!
        }
    }
}

TypeConverter:

public class dictconverter {
    private val gson = Gson()

    @TypeConverter
    fun toJson(segments: Map<Boolean,String>?): String {
        return gson.toJson(segments)
    }

    @TypeConverter
    fun fromJson(json: String?): Map<Boolean,String> {
        return gson.fromJson<Map<Boolean,String>>(
            json,
            object : TypeToken<Map<Boolean, String>?>() {}.type
        )
    }
}

Эта база — вторая в приложении, и я не замечал проблемы, пока не попробовал вывести элементы из БД и, собственно, вышла такая ошибка.

Ответы

Ответов пока нет.