问题标签 [realm-java]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 连接重置后的领域 PermissionManager.getPermissions() 错误
我正面临这个问题,想知道是否有人也面临这个问题,也许有解决方案。
我还在 Github 上打开了问题,但到目前为止没有答案 链接到问题
连接重置或断开连接PermissionManager.getPermissions()
后返回此错误:
E/REALM_SYNC:连接[4]:读取失败:连接被对等 E/REALM_JAVA:__permission 中的错误:CONNECTION_RESET_BY_PEER(realm.basic_system:104):连接被对等 E/REALM_SYNC:连接1:读取失败:连接被重置对等 E/REALM_JAVA:__wildcardpermissions 中的错误:CONNECTION_RESET_BY_PEER(realm.basic_system:104):对等 E/REALM_SYNC:连接 [2]:读取失败:对等连接重置
换句话说,在连接重置后(甚至手动禁用和启用网络)就不可能再获得用户的权限。
这个问题对我们的应用程序有很大的影响,因为我们需要根据这个权限显示/隐藏 UI 组件。
还有,不PermissionManager.getPermissions()
支持离线模式?
android - 领域java:Mmap()失败:内存大小不足
io.realm.exceptions.RealmError:不可恢复的错误。mmap() 失败:内存不足:1073741824
一个1GB的数据库,甚至不能删除数据,因为你得到这个错误。请帮忙解决问题:(
我在很多地方都读到过这个问题,基本上有一个事务,但是我在初始化后立即有一个错误voznikaet,即没有其他事务没有。
java - 减少领域文件维度
在编写和修改数千条记录时出现此错误:
Unrecoverable error. mmap() failed: Out of memory size
我发现这是由于事务占用设备内存的维度。因此,我将单个大交易拆分为较小的交易,现在我不再收到错误消息。但我注意到 default.realm 文件越来越大。我读到如果应用程序执行大量事务这是正常的,因为每个事务也会在存储数据的同一文件中写入日志
有没有办法清除不必要的数据?我已经在应用程序启动时使用了 Realm.compactRealm ,但这似乎并没有释放所有未使用的空间。
android - 将 RSA 密钥缩短到 64 字节是否安全?
我正在尝试加密 Realm DB。密钥应为 64 字节长。我的应用程序的最低 api 级别是 21,所以我只能生成最小长度为 512 字节的 RSA 密钥,依赖于 android sdk 解决方案。将 RSA 密钥缩短到 64 字节是否安全?
android-glide - 在 Android Studio 4.1 中找不到 GlideApp 符号
我使用 Glide 4.11.0 和 Realm 6.0.2 已经有一段时间了,最近将 Android Studio 4.0.x 升级到了 4.1。一切进展顺利。今天我运行了棉绒检查器,并开始做一些“清理”,没有什么不寻常的(看起来)。我经常做的其中一件事是替换针对 R.id 进行测试的 switch 语句。根据 lint 警告使用 if-else 语句来说明 Gradle 5.0 中会发生什么。
当我这样做时,我确实使用了一些我命名为 'id' 的 int 变量来替换要比较的值 - 即,而不是 switch 语句:
我会做:
根据新指南。突然,在一个完整的构建过程中,AS 抱怨它不再识别 GlideApp,而且我还收到一条关于 Realm 无法正确处理的非常奇怪的消息:
我的专辑类中的“id”字段已经有大约 2 年了,没有任何问题!
重建、使缓存无效和重新启动、同步 gradle 文件或“从磁盘重新加载所有内容”似乎没有任何帮助。
实际上,如果我无效并重新启动,我不会在引用 GlideApp 的违规类中看到红色曲线,但是一旦我开始运行应用程序并且它通过构建过程就会出错。
我用谷歌搜索了一下,发现一篇文章似乎在 Realm 和 Glide (RequestOptions) 之间存在一些冲突,但对我来说奇怪的是为什么这会突然开始发生?
我已经验证了 GlideAppjava 类实际上正在构建 - 我正在使用调试构建变体,并且我可以在文件系统 GlideApp.java 中看到,它位于我的类的正确包中的 ap_generated_sources/debug 目录中使用 @GlideModule 注释扩展 AppGlideModule。
所以 GlideApp 正在生成。它只是没有得到认可。
其他新事物之一是我最近创建了一个动态功能模块。这个模块确实依赖于基础模块中的一个类(其中 GlideApp 被引用)。不确定这是否相关(在我开始进行 lint 清理之前,我有很多很多成功的构建)。
太令人沮丧了!任何帮助表示赞赏。
android - Realm 不支持此字段类型:Companion
由于 Realm 实体中的伴随对象,我面临一个问题。
例子:
执行迁移时,出现以下异常:
Realm doesn't support this field type: Companion(class com.example.MyEntity$Companion)
我想知道如何忽略companion object
来自领域的扫描。
android - 更新应用程序崩溃 RealMigrationNeededException 但尚未修改 RealmObjects
我最近发布了我的应用程序的新版本,更新到它后,由于“io.realm.exceptions.RealmMigrationNeededException:由于以下错误需要迁移”,应用程序立即崩溃
我的目标是更新应用程序,运行领域迁移而不会崩溃。
应用程序因 io.realm.exceptions.RealmMigrationNeededException 崩溃:由于以下错误需要迁移:
除了 TelemetryLogModel.timeStamp 之外,其余这些属性都未针对此版本进行修改。
该应用程序的原始版本具有io.realm:realm-gradle-plugin:7.0.2
最新版本有io.realm:realm-gradle-plugin:7.0.8
查看更新日志,这两个版本之间没有重大更改。
这是堆栈跟踪:
领域迁移文件:
领域对象:
实例化领域
重现的步骤和代码
一旦我从一个版本更新到另一个版本,崩溃就会立即发生。
Realm 和工具的版本
领域版本:io.realm:realm-gradle-plugin:7.0.8
启用领域同步功能:否
安卓工作室版本:4.1.3
Android 构建工具版本:29.0.2
摇篮版本:4.0.0
哪个 Android 版本和设备:
三星盖乐世 S9 安卓 11
谷歌像素 3 安卓 11
android - 如何迁移到适用于 Android 的 Realm Sync Protocol Version 3?
我是 Realm 和 Android 开发的新手,正在尝试从 Atlas 查询文档。我能够成功地对用户进行身份验证,但是当我尝试执行查询时,我收到以下错误:E/REALM_JAVA: Session Error[wss://realm.mongodb.com/]: WRONG_PROTOCOL_VERSION(realm::sync::ProtocolError:105): sync client must have a sync protocol version of at least 3 to sync on this application, but found version 2. Please update your application to use a newer SDK
我目前正在开发 Android Realm SDK 和 Android SDK Platform 30 的 10.4.0 版本。我已经尝试寻找两者的更新,它说一切都是最新的。这是我的代码:
有没有人有办法解决这个问题?
android - 对于大型数据集,Realm 写入非常慢并且行为异常
领域版本 - 10.4.0
这是我在项目中使用的主要领域模型类。所有这些模型都具有最多 1-2 级嵌套的嵌入式对象或领域模型。
大约 10k 个条目
大约 1k 个条目
大约 100k-200k 条目
大约 20,000 个条目
读取速度非常快,并且由于反向关系,数据在 50 毫秒内被查询。但是写事务非常非常慢。
对于像下面这样一个非常简单的写事务,它需要 > 20 秒才能完成。
我使用日志检查了事务,发现写入事务块在 < 50 毫秒内执行,但提交事务或调用事务的 onSuccess 方法发生在 > 20 秒内。
另外,我发现一件有趣的事情是,如果我通过在协程 IO 调度程序中调用 executeTransaction 而不使用异步来执行相同的写入事务,它会将写入事务加速到 5-10 秒。但是5-10秒还是不好。
另外,我尝试删除任何通知侦听器,因为差异检查需要时间,但这并没有太大帮助。另外,我的写事务没有被其他事务阻止,我已经确认了这一点。
android - Android Studio 4.2 在增量构建时抛出空指针异常
更新 #4:我已更新到 Android Studio 4.2.1 和 Realm 10.5.0,但问题仍然存在。例外的行号相同,如下所示。
更新#3:查看完整的堆栈跟踪(您可以在此处查看),这似乎是 Realm 的一个问题。我正在使用 10.4.0 注释处理器,也许它尚未与 AS 4.2 完全兼容?
另一件奇怪的事情 - 现在我意识到,如果我运行一个失败的增量构建,然后再次运行它而不进行任何代码更改,它就会成功。
更新#2:
好吧,“修复”实际上并没有解决任何问题。似乎可以在没有错误的情况下完成一个增量构建,但现在又回到了同样的问题。
更新:
我决定完全删除我的 AS 安装,然后下载 4.2 并重新安装。这带来了一系列问题(最初没有安装 Sdk,当我尝试使用 Sdk 管理器安装时,我收到了关于它已损坏的错误),但我解决了这些问题。
下面的错误再次发生,令人发指,但这次它有一个关于我的应用程序类的额外行,它使用了一个已弃用的 API。运行 lint 没有显示任何问题,但建议是在运行构建时包含一个编译器选项以包含 lint,我这样做了。这给了我一个新的错误,然后当我删除 -X 命令时,突然之间我不再看到这个错误了......
所以我不确定是什么“修复”了它,除了用我的参数慢跑编译步骤然后删除它。
我刚刚从 4.1.3 更新到 Android Studio 4.2,还更新了 Gradle(6.7.1)、Gradle 插件(4.2.0)等,一切都显示为最新。
我可以毫无错误地进行完全重建。但是,如果我进行一次无害的更改并尝试增量构建,我总是会收到如下错误:
进行完整构建然后可以正常工作。
我努力了:
- 使缓存重新启动无效
- 退出AS,删除.gradle目录并重启,执行完整rebuild
似乎没有任何帮助。
显然升级路径有问题,但我不知道如何解决!帮助!