我想将 SQLCipher 引入 Room

I want to introduce SQLCipher to Room

提问人:Gura 提问时间:6/28/2023 最后编辑:Tenfour04Gura 更新时间:6/28/2023 访问量:57

问:

我想将 SQLCipher 引入 Room。 我可以运行它而不会出现任何错误,但我无法打开创建的数据库。 我试图打开使用某些外部工具创建的数据库,但是当我输入我设置的密码时,它显示“不是数据库”。

我想解决数据库损坏的原因。 我是 Android 新手。 谢谢。

顺便说一句,Android 是 API30。

dependencies {
    def room_version = "2.4.3"
    implementation "androidx.room:room-runtime:$room_version"
    implementation "androidx.room:room-ktx:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

    implementation "net.zetetic:android-database-sqlcipher:4.4.2@aar"
}
@Database(
    entities = [
        Config::class,
        User::class
    ],
    version = 2,
    exportSchema = false
)
abstract class TestDatabase : RoomDatabase() {
    abstract fun ConfigDao(): ConfigDao
    abstract fun UserDao(): UserDao

    companion object {
        fun getDatabase(context: Context): TestDatabase {

            return Room.databaseBuilder(
                context.applicationContext,
                TestDatabase::class.java,
                "db_name"
            ).openHelperFactory(SupportFactory(SQLiteDatabase.getBytes("1234".toCharArray())))
                .fallbackToDestructiveMigration()
                .build()

        }
    }
}
SQLITE Android-Studio Kotlin SQLCIPHER

评论


答: 暂无答案