- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Assets 文件夹中有一个 .db 文件。我的 RoomDatabase 类如下。我将应用程序安装到我的设备上。然后我在下面的类中更改了 version = 2,并使我的预填充数据库版本为 2。然后我重命名了表中的一列,以便更改架构。然后我再次安装了该应用程序。和繁荣!房间给了我以下错误:
Room 无法验证数据完整性。看起来您已更改架构但忘记更新版本号。您可以通过增加版本号来解决此问题。
@Database(entities = [Word::class], version = 1, exportSchema = false)
abstract class WordRoomDatabase : RoomDatabase() {
abstract fun wordDao(): WordDao
companion object {
@Volatile
private var INSTANCE: WordRoomDatabase? = null
fun getDatabase(context: Context): WordRoomDatabase =
INSTANCE ?: synchronized(this) {
INSTANCE ?: buildDatabase(context).also { INSTANCE = it }
}
private fun buildDatabase(ctx: Context): WordRoomDatabase {
val passphrase: ByteArray = SQLiteDatabase.getBytes("my password".toCharArray())
val factory = SupportFactory(passphrase)
return Room.databaseBuilder(ctx.applicationContext, WordRoomDatabase::class.java, "word_database2.db")
.openHelperFactory(factory)
.createFromAsset("word_database.db")
.fallbackToDestructiveMigration()
.build()
}
}
}
在此之后,我完全删除了我的应用程序。制作预填充的数据库版本和@Database 版本 1。我在 AndroidManifest.xml 中将 allowBackup 设为 false。所以我的设备中不存在数据库。但是当我将应用程序安装到设备时,我仍然面临同样的错误。这是什么胡说八道的错误。我该如何解决?
最佳答案
我在不久的过去遇到了同样的问题。我引用 http://www.sqlite.org/lang_altertable.html
SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table. It is not possible to rename a colum, remove a column, or add or remove constraints from a table.
关于android - Room 库的 createFromAsset 和 fallbackToDestructiveMigration 方法 - 不存在数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64821480/
我有一个在 Canvas 上绘制文本的自定义 View 。我想将 font 更改为存储在 assets 文件夹中的字体。 我正在使用 Android Studio 所以我创建了一个文件夹 src/ma
堆栈溢出 我正在尝试在首次安装时从 Assets 数据库初始化我的应用程序的数据库。但是,它可以正常工作,直到应用程序关闭。当我再次打开应用程序时,它会调用 createFromAsset()。据我所
几个月前我看过 andengine,并且成功地利用它做了一些东西。现在我下载了最新版本,但我遇到了最简单的事情崩溃。这是我的代码 package francesco.mygame; import or
我正在制作必须以“NASTALIQ.TTF”字体显示文本的 Android 应用程序。我将字体 ttf 文件放在项目的以下目录中: C:\Users\Zeeshan\AndroidStudioProj
简单的问题:Typeface.createFromAsset() 是否缓存?还是我应该在内存中保留一个引用以方便使用?我问的原因是因为我经常使用它(都是为了在许多 Activity/ View 中维护
在开始 Activity 中,我调用 FontFactory.init(getApplicationContext()); 将 Context 设置为 FontFactory 类。 我还有扩展 Tex
我的应用程序因以下代码而崩溃。我正在尝试在 textView 中提供自定义字体。 Assets 目录没问题,因为我已经仔细检查过了。 @Override protected void onCreate
房间持久性库版本 2.2.0-alpha01 添加了使用预打包数据库的能力。 https://developer.android.com/jetpack/androidx/releases/room
场景 我正在尝试用一些条目预填充 Room 数据库。 api 调用的文档很清楚 ( developer.android docs ),我读过一篇很好的博客 ( Medium article ),但我不
我在 Assets 文件夹中有一个 .db 文件。我的 RoomDatabase 类如下。我将应用程序安装到我的设备上。然后我在下面的类中更改了 version = 2,并使我的预填充数据库版本为 2
这是我的数据库。 @Database(entities = {Word.class}, version = 1, exportSchema = false) public abstract
我是一名优秀的程序员,十分优秀!