Realmのクラス(?)を複数プロジェクトから利用できるようにとモジュールにて定義した。
で、当然のようにアプリケーションの方でも使うわけだけど、これがうまくいかない。*1
どうやら、こういう事をやるには一ひねりする必要があるようだ。
モジュール側でこんなクラスを作って
@RealmModule(library = true, allClasses = true)
public class RealmLibraryModule {
}
アプリ側ではコンフィグ設定でこんなコードを。
RealmConfiguration config = new RealmConfiguration.Builder().modules(Realm.getDefaultModule(), new RealmLibraryModule()).build();
このように書いて特定のクラスだけを含めることも。
@RealmModule(library = true, classes = {HOGE.class,FUNI.class})
public class RealmLibraryModule {
}
アプリ内でもスキーマをグループ分けして使うようなことも出来るらしい。
@RealmModule(classes = {HOGE.class,FUNI.class})
public class AppRealmModule1 {
}
@RealmModule(classes = {FOO.class})
public class AppRealmModule2 {
}
詳しくは Realm: リアクティブなモバイルアプリを短期間に#スキーマの共有を。
*1 「io.realm.exceptions.RealmException: class is not part of the schema for this Realm.」とか言われちゃう。