android - lib 中的 Realm db + 应用程序中使用 lib 的 Realm db 相互冲突

标签 android database sdk realm

我创建了一个使用 Realm 数据库存储数据的 SDK。请参阅下面的代码,我是如何初始化我的 sdk 数据库的

  Realm.init(application);
  config = new RealmConfiguration.Builder().name("sdk.db")
            .schemaVersion(1)
            .deleteRealmIfMigrationNeeded()
            .build();
  Realm.setDefaultConfiguration(config);

应用类中的App类似。

  • 首先创建并初始化应用程序数据库并调用 sdk 方法,该方法在内部创建并初始化 sdk.db。

但是当我运行应用程序时出现以下错误

io.realm.exceptions.RealmException: Async transaction failed

Caused by: io.realm.exceptions.RealmException: 'class com.models.db.FavouriteIdsModel' is not part of the schema for this Realm.

at io.realm.internal.RealmProxyMediator.getMissingProxyClassException(RealmProxyMediator.java:234) at io.realm.DefaultRealmModuleMediator.getSimpleClassNameImpl(DefaultRealmModuleMediator.java:82) at io.realm.internal.RealmProxyMediator.getSimpleClassName(RealmProxyMediator.java:72) at io.realm.RealmSchema.getTable(RealmSchema.java:177) at io.realm.Realm.delete(Realm.java:1689) at com.jiostb.jiogames.databaserealm.FavouriteMethod$4.execute(FavouriteMethod.java:79) at io.realm.Realm$1.run(Realm.java:1601) at io.realm.internal.async.BgPriorityRunnable.run(BgPriorityRunnable.java:34) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764)

当我看到数据库文件时,我遇到了一些奇怪的事情

  • sdk.db 数据存储在 app.db 中,sdk.db 也有相同的数据

最佳答案

SDK 有可能会覆盖默认配置,而不是使用其自己的内部 RealmConfiguration。

另外,如果一个库模块想要为另一个模块公开它的架构,您必须使用带有 library = true@RealmModule 注释,并在配置中指定它。

关于android - lib 中的 Realm db + 应用程序中使用 lib 的 Realm db 相互冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56335915/

相关文章:

android - 如何关闭来电的媒体服务?我的 AudioManager 不工作

android - Nooby 安卓开发者

android - 如何创建垂直滚动月份的自定义日历

android - 添加自定义 View 组件时应用程序停止

java - 如何获得自定义标题 View ?

mysql - 如何在 Mysql 中优化简单的更新查询?

ios - 添加 cocoapods 后在 Xcode 中导致错误的框架

android - 过渡到 FragmentActivity

mysql - 更新大表中的查询

php - 用户指定的内容共享,例如 G+