问题标签 [objectbox-android]

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.

0 投票
3 回答
95 浏览

android - ObjectBox 在类型迁移后不保留以前的值

我们必须将实体中的一个字段参数从 迁移longBigDecimal. 迁移很顺利,但是有问题;我们希望将以前的值设置为迁移的字段。但是一旦ObjectBox被初始化,它会将 migrated 字段默认为当前类型的默认值,在我们的例子中为null.

假设我们有:

标识(长) 姓名
123 随机名称

迁移后我们得到:

标识(字符串) 姓名
无效的 随机名称

是否有任何可能的迁移方式而不会丢失已迁移字段的值?

附注:我使用转换器来保留BigDecimal值,因为ObjectBox不支持BigDecimal

转换器类:

用法:

0 投票
1 回答
169 浏览

objectbox - ObjectBox:在 Dart 中打开用 Java 创建的 DB 文件时出现问题

我在 Android 上有一个正在运行的 Java 应用程序,现在我尝试将其迁移到 Flutter/Dart。所以我在 Dart 中重新创建了模型,并尽最大努力将类型与 Java 匹配。我注意到不能完全匹配的一件事是 Java 中的模型继承在 Dart 中不受支持。为此,我将最初在父类中的所有属性复制到子类中。我的测试应用程序首先创建了一个空数据库,并在 Linux 和 Android 上运行,具有基本的 get 和 put。

希望使用与 Java 应用程序相同的数据库,然后我复制了一个已创建并仍在 Android 上的 Java 应用程序使用的数据库文件,并将其放置在 Dart 应用程序中。我还复制了模型 json 文件,以便希望 UID 可以匹配。在Linux上运行,它崩溃并报告以下错误,这对我来说基本上意义不大:

然后我尝试在 Android 上启动它,我收到异常消息,比如

ObjectBoxException (ObjectBoxException: failed to create store: 10501 Cannot change the following flags for Property rightToLeft (6, Bool) (Language) from 4 to 0 (problem flags: 4). 请考虑创建一个新属性。请检查数据文档模型迁移和 UID。)

我检查了Java应用程序的json文件,是的,有'flags'字段,如:

但是这个属性变成了 Dart

在构建数据库例程时,“标志”字段因某种原因被删除。然后我检查了其他属性,Java 文件有许多具有标志字段的属性。许多这些标志字段在 Dart 中被删除,只保留了一些。我找不到太多关于这些标志是什么的信息,或者为什么它们在 Java 和 Dart 版本之间不同,或者如何在 Dart 中维护它们以便可以兼容地处理 DB 文件。

请问有什么建议吗?

0 投票
1 回答
59 浏览

objectbox - Objectbox 同步服务器配置故障排除

遵循https://sync.objectbox.io/objectbox-sync-server中的指南

我已经有我下载的 Objectbox 同步服务器文件

  1. 下载我的 Objectbox 同步服务器文件(我从 Objectbox Team 获得)并解压
  2. 将我的 objectbox-model.json(从我的颤振应用程序生成的文件)复制到提取的文件夹中

尝试

它给了我

  1. 创建配置文件 (sync-server-config.js) 包含:

  2. 并从该文件夹打开终端运行 ./sync-server

  3. 它返回我错误

我确实尝试过

删除,也给出同样的错误

我是 Objectbox 的新手,我想尝试使用同步部分,

您的帮助将不胜感激。谢谢

0 投票
0 回答
33 浏览

objectbox - ObjectBox Sync Suite 是否适用于会员应用程序?

我是新来的对象框

假设我们有客户应用程序的会员应用程序,允许客户订购商品

每个用户都使用自己的手机订购,所以在我看来,我认为将“客户 1”“同步”到“客户 2”电话是不好的,这是不相关且无用的,

如果我们有 500 个客户,并且每个客户都从他自己的手机订购,那么在设备之间同步“客户订单”是没有用的,它只需要在客户端和服务器之间同步,所以稍后从管理应用程序,管理员可以处理客户订单

在此处输入图像描述

如果 Objectbox 适合这种情况,如何实现这种情况?,是否需要在模型类定义中指定任何“关键字”以支持这种情况?

0 投票
2 回答
72 浏览

android - 对象框错误:“W/Box:[Cl-Lws] LWS:无法打开套接字 [Cl-Lws] LWS 客户端连接错误:无法打开套接字”

我正在尝试将我的 android 应用程序与同步服务器同步,但客户端似乎无法连接到服务器。Admin UI 在 localhost:9980 上完美运行。服务器在 docker 上运行。

在此处输入图像描述

首先,我尝试了文档所说的“wss://127.0.0.1”,然后我尝试使用 ws,然后使用指定的端口号(9980 和 9999)。然后我尝试配置url。

都没有奏效。请帮助我如何找到正确的连接地址。

更新:在模拟器中,您必须使用 10.0.2.2 才能访问 localhost!在 MainActivity onCreate() 方法中:

在此处输入图像描述

0 投票
0 回答
110 浏览

android-studio - 由于自动生成的文件中出现“找不到符号”编译错误,无法在 Android Studio 和 ObjectBox 中进行覆盖测试

我正在使用 Android Studio 4.1.1、ObjectBox 3.0.1 和 Kotlin 1.5.10。

当我点击测试类或 run 上的运行./gradlew :app-core:test按钮时,测试运行良好,但是当我点击Run X with coverage测试运行时,我显示

如果我点击Cancel后台的覆盖率报告就会消失(所以我无法读取覆盖率信息,编辑器中的代码行也没有覆盖率信息)。

如果我单击OK开始编译,并且在 ObjectBox 生成的文件中出现编译错误SomeEntityCursor

其他生成的类中也发生了同样的情况(请参阅下面的详细信息)。但底线是生成的代码似乎无法看到我的实体类。值得注意的是:生成的代码与实体类在同一个模块中。

仅供参考,SomeEntity看起来像这样:

奇怪的是,有时它可以编译,但如果我以前这样做肯定不会Clean project

这是完整的输出(对于示例包名称与日志中的不一致,我很抱歉,我希望它没有任何区别!):

不幸的是,我在网上找不到有关该问题的任何信息信息,因此感谢您提供任何提示,谢谢!

0 投票
1 回答
52 浏览

android - 仅更新 ObjectBox Android 中的选定列

是否可以仅更新 ObjectBox Android 中的选定列?

例如,“提醒”实体中有 5 列

我只想更新现有 ID 的“完成”列。

所以我尝试了,

但是,所有列都被覆盖(其他列填充了初始值)。

有什么简单的方法可以只覆盖选定的列吗?还是我总是必须重新放置所有列?

谢谢你。

0 投票
1 回答
15 浏览

objectbox - ObjectBox 属性可以有多个注释吗?

ObjectBox记录了几个可以应用于实体属性的注释。一个属性可以有多个注释吗?

例如,这会是一个有效的实体吗?

0 投票
0 回答
13 浏览

objectbox - 将 android 应用程序从 ormlite 迁移到 objectBox

我有一个已经使用Ormlite库的现有应用程序,如何迁移到objectBox?大家有例子吗?</p>

0 投票
0 回答
33 浏览

android - 如何在多模块 Android 项目中使用 ObjectBox 数据浏览器?

我的 android kotlin 项目中有不同的模块。我按照在我的应用程序中集成 ObjectBox 数据浏览器的设置。https://docs.objectbox.io/data-browser#browse-data-on-your-device 我的应用程序有多个模块句柄,具有自己的 boxStore(属于其域)。我在一个模块的 build.gradle 中做了更改,而不是在应用程序的 build.gradle

可能会出现问题,因为它记录在设置中(否则,构建将失败并出现重复文件错误(如重复文件......),请参阅下面的异常。

任务:app:mergeDevDebugJavaResource

FAILURE:构建完成,有 2 次失败。

1:任务因异常而失败。

  • 出了什么问题:任务“:app:checkDevDebugDuplicateClasses”执行失败。

执行 com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable 模块 objectbox-android-3.1.0-runtime (io.objectbox:objectbox-android:3.1. 0) 和 objectbox-android-objectbrowser-3.1.0-runtime (io.objectbox:objectbox-android-objectbrowser:3.1.0)

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。==================================================== ==============================

2:任务因异常而失败。

  • 出了什么问题:任务“:app:mergeDevDebugNativeLibs”执行失败。

执行 com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction 2 文件时发生故障,从输入中找到路径“lib/arm64-v8a/libobjectbox-jni.so”:- C:\Users\user.gradle \caches\transforms-3\61d4e2d341867bfe7da882a16d958f28\transformed\objectbox-android-3.1.0\jni\arm64-v8a\libobjectbox-jni.so - C:\Users\user.gradle\caches\transforms-3\c01a6cc4e4401962baa7adfbb173c10c\transformed objectbox-android-objectbrowser-3.1.0\jni\arm64-v8a\libobjectbox-jni.so 如果您使用 jniLibs 和 CMake IMPORTED 目标,请参阅 https://developer.android.com/r/tools/jniLibs-vs-导入目标

是否可以在多模块 Android 项目中使用 ObjectBox 数据浏览器?