当エラーがでる原因
「java.lang.IllegalArgumentException: Field ‘plus’: type mismatch. Was BOOLEAN, expected [INTEGER]」 なるエラーがでました。以下のソースコードが問題でした。
templates = mRealm_template.where(Template.class) .equalTo("plus", 1).findAll().sort("display");
上記のソースコードはRealmでTemplateテーブルのplusフィールド、を「1」で検索しようとしているのですが、実はplusフィールドはBOOLEAN型なので、trueもしくはfalseしか使えないのです。 それを踏まえてエラーメッセージをよく見てみます。 「「java.lang.IllegalArgumentException: Field ‘plus’: type mismatch. Was BOOLEAN, expected [INTEGER]」」 これをなんとなく英訳すると 「java.lang.IllegalArgumentException:フィールド ‘plus’:型が一致しません。 BOOLEANだった? INTEGERになってる?」 (後半かなり適当な英訳w) なので正解は
となります。 「java.lang.IllegalArgumentException: Field ‘(フィールド名)’: type mismatch. Was (型), expected [(型)]」 は 「Realmで検索しようとしている値がテーブルの型と異なる」場合に発生します。 AndoridでRealmを使う際は良く出てくるエラーだと思うので、覚えておきましょう。