レルムのバージョン:
classpath "io.realm:realm-gradle-plugin:5.8.0"
私はことを発見し、私はにモジュールを追加する必要がありますio.realm.RealmConfiguration
。だから私は、これは行わ:
RealmConfiguration.Builder builder = new RealmConfiguration.Builder()
.deleteRealmIfMigrationNeeded()
.schemaVersion(1)
.encryptionKey(/*my encryption key*/)
.name("pay_card.realm");
builder.addModule(new RPayCardRealmModule());
return Realm.getInstance(builder.build());
RPayCardRealmModule.class
@RealmModule(library = true,classes = {
RPayCard.class
})
public class RPayCardRealmModule {
}
RPayCard.class
@lombok.Getter
@lombok.Setter
@lombok.ToString(includeFieldNames = false)
@lombok.Builder
@lombok.AllArgsConstructor
@lombok.NoArgsConstructor
@lombok.EqualsAndHashCode(of = "id")
public class RPayCard extends RealmObject {
@io.realm.annotations.PrimaryKey
@io.realm.annotations.Required
String id;
private String billNumber;
private String cardNumber;
private String cardExpirationDate;
private String cardType;
private String cardHolderName;
private boolean selected;
}
しかし、私は、DBファイル「pay_card.realm」に見たとき。
レルムのデフォルトの動作を自動的に作成することである
RealmModule
と呼ばれるDefaultRealmModule
拡張すべてのクラスが含まれているRealmObject
プロジェクトでは。このモジュールは自動的レルムで知られています。
以下からbuilder.addModule()
のドキュメント
FIXME:一時的な目に見えるDEBUG方法。無条件にモジュールを追加します。すでに定義されたモジュールにモジュールを追加します。
以下からRealmConfiguration.Builder modules
のドキュメント
一つ以上のRealmModulesと既存のモジュールを置き換えます。この方法を使用すると、提供のモジュールで定義されたスキーマを使用してこのレルムのために現在のスキーマを置き換えます。プロジェクト内のすべてのレルムのクラスを含む、デフォルトのレルムのモジュールへの参照(ただし、依存関係)は、Realm.getDefaultModule()を使用して見つけることができます。アプリのプロジェクトからスキーマを組み合わせることで、ライブラリの依存関係は、このように次のコードを使用して行われます。
builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
TLDR; あなたは使用する必要がありますRealmConfiguration.Builder.modules()
代わりに、最初に明確なモジュールのリストにbuilder.addModule(new RPayCardRealmModule())