lib中的Realm数据库+使用lib的应用中Realm数据库彼此冲突

时间:2019-05-28 06:04:50

标签: android database sdk realm

我创建了一个使用Realm db存储数据的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:异步事务失败

     

由以下原因引起:io.realm.exceptions.RealmException:“类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)

当我看到数据库文件时,我得到了奇怪的东西

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

1 个答案:

答案 0 :(得分:0)

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

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