【问题标题】:Realm db in lib + Realm db in app using the lib is conflicting with each otherlib中的Realm db +使用该lib的应用程序中的Realm db相互冲突
【发布时间】:2019-05-28 06:04:50
【问题描述】:

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

  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:异步事务失败

原因:io.realm.exceptions.RealmException: 'class com.models.db.FavouriteIdsModel' 不是该领域架构的一部分。

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

当我看到 db 文件时,我得到了奇怪的东西

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

【问题讨论】:

    标签: android database sdk realm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多