- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我调用 Realm.deleteRealm(config) 时出现异常:
java.lang.IllegalStateException: It's not allowed to delete the file associated with an open Realm. Remember to close() all the instances of the Realm before deleting its file
我在 Application.onCreate 中的 Realm.init() 之后调用它,因此没有理由打开其他实例。
public void onCreate() {
Realm.init(this);
Realm realm;
RealmConfiguration config = getConfig();
try {
realm = Realm.getInstance(config); // Will migrate if needed
}
catch (RealmMigrationNeededException e)
{
Realm.deleteRealm(config);
realm = Realm.getInstance(config);
}
}
我看到了这些主题,但看不到解决方案:
https://github.com/realm/realm-java/issues/4552
https://github.com/realm/realm-java/issues/5416
编辑:
我认为我的问题是当我重新启动应用程序以尝试迁移失败时。在应用程序中,我打开了实例但未关闭,并且无法轻松关闭它们,代码太复杂。当我重新启动应用程序以通过向模型添加字段来测试迁移异常时,可能会从上次启动中打开一些实例。
编辑2:
我尝试回到 Realm 3.0.0(我之前的版本),但没有出现此 IllegalStateException。我目前使用的是4.2.0。
也许我错过了变更日志中的某些内容..
最佳答案
在realm-java 4.1.0
之前,Realm.deleteRealm()
不是进程安全的调用。这意味着如果其他进程中打开了 Realm 实例,它不会抛出异常。但是在 Realm 实例打开时删除将很有可能损坏数据库文件。
从 4.1.0
开始,Realm.deleteRealm()
是一个多进程安全 API。如果它检测到在其他进程/线程上打开了 Realm 实例,它将抛出异常。
因此,在调用deleteRealm()
之前,请检查您是否在其他进程中使用了 Realm,以及这些进程是否未正确关闭。
关于java - 非法状态异常 : It's not allowed to delete the file associated with an open Realm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47432952/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我有四个模型类: class Group :event_producer end class PersonalBlog :event_producer end class Event true
将应用程序从Rails 4.2.9升级到Rails 5.2.1。 通过大部分令人讨厌的部分,更新了依赖关系和诸如此类的东西,最终使应用程序在console中运行,现在尝试访问server上的页面。加载
我的 EntityDefinition 中有一个关联: ... class ParentEntityDefinition extends EntityDefinition { ...
我不确定为什么这个关联无效 class Tag < ActiveRecord::Base has_and_belongs_to_many :routes end class Route < Act
我有以下关联。 PropertyOwner 是一个连接模型,它属于一个属性(property),多态地属于一个所有者,在下面的例子中是一个 ForeclosureDefense。一切正常,直到我拥有
我有一份有很多发票的工作,一张发票属于一份工作。我想查询第一张发票在某个日期范围内的工作。我有这个查询: @jobs = Job.joins(:invoices). where("invoices
我有这样的关系:用户可以拥有零只或一只狗,但狗必须属于某人。 # dog.rb class Dog { joins(:dog) } # To get records without a dog,
在我的 Rails 4 应用程序中,我有以下模型: User has_many :administrations has_many :calendars, through: :administrati
我见过的所有示例,包括文档都建议按关联过滤应使用以下语法 [contrived exampled] User.findAndCountAll({ include: [ {
我有一个下拉列表(HTML 选择框),它从这个 MySQL 查询中获取值: "SELECT cdID, cdTitle FROM CD ORDER BY cdID" 然后将结果存储在关联数组中,然后将
我是 Ruby ON Rails 新手,我的应用有 3 个模型 class User < ActiveRecord::Base has_one :user_hobby has_one :user_
我有三个模型,每个模型都有以下关联: class Model1 :model1 # will this work? is there any way around this? end class
我有一个带有帖子和标签的数据库。我想找到的帖子,只包含一个标签与一个特定的TagID,根本没有其他标签。下面的代码可以工作,但它需要服务器手动过滤结果,这将使分页变得困难。有谁有可以做到这一点的直接查
任何人都知道如何避免 PLS-00312 错误? “PLS-00312:位置参数关联可能不遵循命名关联” 我得到这个是因为下面一行: AttachList=> v_est_proc_name||'_E
我有以下工厂定义。 Factory.define :status do |f| end Factory.define :my_status , :parent => :status do |f|
我有 2 个具有 1:M 关联的模型,定义如下: var inventory = sequelize.define("Inventory",{**model definition**}; var tr
假设这个模式: var user = sequelize.define('user', { username: Sequelize.STRING, email: Sequelize.S
我正在使用 Apple 的工具进行应用站点关联验证,该工具位于此处:https://search.developer.apple.com/appsearch-validation-tool 它给了我错
实体\识别 /** * @ORM\Entity * @ORM\Table(name="c_rcgntn") */ class Recognition { /** * @ORM\
我是一名优秀的程序员,十分优秀!